選擇排序: 思路: 1、首先拿陣列第乙個元素依次與除其自身外的其他每個元素順序比較,如果第乙個元素大於剩下的某個元素,就互換內 容。 2、經過第一輪比較之後,此時第乙個元素就是陣列中最小的元素。然後再拿第二個元素與除第乙個元素和其自身的元素 進行比較,如果第二個元素大於剩下的某個元素,就互換內容。 3、依次類推,直到最後乙個元素。
具體流程如下圖所示:
system.out.print("排序前陣列:");
printarray(arr);
selectsort(arr);
system.out.print("排序後陣列:");
printarray(arr);
} public static void selectsort(int arr)
}} }
public static void printarray(int arr)
}}上面的選擇排序演算法效率比較低,因為陣列每乙個元素與剩下的元素比較就是為了獲得最小的元素並且與之互換。例 如:這個陣列,第一輪就要互換 4 次才能使第乙個元素儲存的是這個陣列中最小的元素。如果是 這樣,那麼更高效率的方式則是只需要通過兩個變數,乙個記錄最小值,乙個記錄最小值所在的角標即可。等當前元素 與餘下的所有元素比較完,直接互換,這樣只需互換一次就能達到目標,效率自然就會提高。**:
public class selectsort2 ;
system.out.print("排序前陣列:");
printarray(arr);
selectsort(arr);
system.out.print("排序後陣列:");
printarray(arr);
} public static void selectsort(int arr)
} // 如果最小的就是自己,就沒有必要執行 swap 操作
if (index != x)
swap(arr, x, index);
} }public static void swap(int arr, int a, int b)
public static void printarray(int arr)
}}
Java 選擇排序
public static void selectsort int a int n a.length int minindex 0 從無序區中選乙個最小的數放在有序區的最後,初始時認為整個陣列都是無序的,選乙個最小的數放到第一位 for int i 0 i 直接選擇排序和插入排序類似,都將資料分為有...
選擇排序 JAVA
選擇排序原理 每次選定乙個位置的數,依此和後續位置的數比較,如果選定的數大於後面的數,則交換 第一次選擇出最小值,第二次從第二個位置開始比 共比較n 1輪,每輪比較n i 1次 int a new int for int times 0 times a.length 1 times 上述 在在一輪比...
Java 選擇排序
package com.vgbh public class selectsorting 第一趟,從n個元素中找出關鍵字最小的元素與第乙個元素交換 第二趟,在從第二個元素開始的n 1個元素中再選出關鍵字最小的元素與第二個元素交換 如此,第k趟,則從第k個元素開始的n k 1個元素中選出關鍵字最小的元素...