標籤:null oid 最小值 length swap class enter code ret
排序演算法(三):簡單選擇排序演算法-Java實現
簡單選擇演算法是除堆排序的另外一種選擇排序演算法,其也是一種不穩定的排序演算法,平均時間複雜度為O(N2),空間時間複雜度為O(1)
簡單選擇演算法相對比較簡單,並且易於理解,具體排序演算法思路如下:
- 選擇數組中最小的一個元素與array[i]交換,始終是將數組分為aray[0]...array[i] 有序和array[i+1]...array[array.length-1]無序兩部分
- 將無序中最小值放到array[i+1]處
實現代碼如下:
1 public class SelectSort { 2 3 public static void main(String[] args) { 4 int[] array = new int[]{5, 3, 6, 2, 1, 9, 4, 8, 7}; 5 SelectSort selectSort = new SelectSort(); 6 selectSort.selectSort(array); 7 for (int i = 0; i < array.length; i++) { 8 System.out.print(array[i] + " "); 9 }10 }11 12 public void selectSort(int[] array) {13 if (array == null || array.length == 0) return;14 15 for (int i = 0; i < array.length; i++) {16 // 預設最小為i17 int min = i;18 // 此迴圈主要是選擇出來最小的元素19 for (int j = i + 1; j < array.length; j++) {20 if (array[min] > array[j]) {21 min = j;22 }23 }24 25 // 將兩個元素交換26 if (min != i) {27 swap(array, i, min);28 }29 30 }31 }32 33 private void swap(int[] array, int i, int j) {34 // 有可能溢出35 array[i] = array[i] + array[j];36 array[j] = array[i] - array[j];37 array[i] = array[i] - array[j];38 }39 }
排序演算法(三):簡單選擇排序演算法-Java實現