選擇排序演算法的思想類似於冒泡排序,每次從未排序的序列中選出最大或者是最小值,放在數組的頭部或者是尾部。只不過選擇演算法不是像冒泡演算法兩兩進行比較,而是每次迴圈未排序的數組,從中找出最大或者是最小值的索引,然後與未排序的數組的頭部或者尾部進行交換。直到最後只剩未排序數組只剩下一個數時,排序結束。java...
選擇排序演算法的思想類似於冒泡排序,每次從未排序的序列中選出最大或者是最小值,放在數組的頭部或者是尾部。只不過選擇演算法不是像冒泡演算法兩兩進行比較,而是每次迴圈未排序的數組,從中找出最大或者是最小值的索引,然後與未排序的數組的頭部或者尾部進行交換。直到最後只剩未排序數組只剩下一個數時,排序結束。java代碼實現如下:
public static void SelectionSort(int[] array){ for(int i = 0; i<array.length ; i++){ int min = array[i]; int key = i; for(int j = i+1; j < array.length ; j++){ if(min > array[j]){ min = array[j]; key = j; } } int temp = array[i]; array[i] = min; array[key] = temp; } }
選擇排序的時間複雜度為O(n^2),空間複雜度為O(1).