如何把 Django 專案部署到伺服器?
阿新 • • 發佈:2021-01-20
選擇排序
遍歷陣列將最小的下表找出來 與第一個陣列下標元素互換
此時第一個元素為最小,在下個元素開始重複次操作
import java.util.Arrays; //選擇排序 public class SelectedSort { //測試 public static void main(String[] args) { //定義一個數組 int[] arr = DataChecker.generaRandomArray(10,100); System.out.println(Arrays.toString(arr)); sort(arr); System.out.println("Selected sort after:"); System.out.println(Arrays.toString(arr)); } /** * @param arr int[] * @param i 需要交換的陣列下標 * @param j 同上 */ public static void swap(int[] arr,int i,int j){ //交換 int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } /** * * @param arr int[] * 對陣列進行選擇排序 */ public static void sort(int[] arr){ for (int i = 0; i < arr.length; i++) { //找到陣列種最小的下標,預設是0 int minPosition = i; //找到陣列種最小值的index for (int j = i+1; j <arr.length ; j++) { if (arr[j] < arr[minPosition]) { //將小的下標賦值給minPosition minPosition = j; } } //交換 swap(arr,i,minPosition); } } }
這裡的DataChecker.class 是對數器 ,判斷演算法是否正確
import java.util.Arrays; import java.util.Random; //對數器 public class DataChecker { /** * @param size 陣列大小 * @return 隨機陣列 */ public static int[] generaRandomArray(int size){ return generaRandomArray(size,size); } /** * * @param size size 陣列的大小 * @param randomSize 隨機數值的大小 * @return int[] */ public static int[] generaRandomArray(int size,int randomSize){ Random random = new Random(); int[] arr = new int[size]; for (int i = 0; i < arr.length; i++) { arr[i] = random.nextInt(randomSize); } return arr; } /** * * @param arr1 int[] * @param arr2 int[] * @return 比較兩個陣列的值是否相同 */ public static boolean check(int[] arr1,int[] arr2){ //工具類進行排序 Arrays.sort(arr1); //選擇排序 SelectedSort.sort(arr2); System.out.println(Arrays.toString(arr1)); System.out.println(Arrays.toString(arr2)); for (int i = 0; i < arr1.length; i++) { if (arr1[i] != arr2[i]){ return false; } } return true; } //測試 public static void main(String[] args) { //儲存正確的次數 int right = 0; for (int i = 0; i < 10000; i++) { System.out.println("第"+i+"次隨機生成進行比較 "); int[] arr1 = DataChecker.generaRandomArray(100); int[] arr2 = Arrays.copyOf(arr1,arr1.length); if (check(arr1,arr2)) right++; } System.out.println("right: " + right); } }
這裡進行10000次測試 需要多測,來判斷演算法的正確性