經典排序演算法(2)——選擇排序(selection sort)
阿新 • • 發佈:2021-01-24
1. 演算法思想
選擇排序(selection sort)是一種比較類排序演算法。工作原理為:在未排序佇列中選擇最小(最大)值,放到序列的起始位置,然後,再從剩餘未排序佇列中選取最小(最大)值,重複此步驟,直到序列有序。
2. 演算法描述
- 在序列中找到最小(大)值,將其與第一個元素進行交換;
- 從剩下未排序的元素中選擇最小(大)值,並將其放置在前面;
- 重複此步驟,直到序列有序;
3. 動圖演示
4. 程式碼實現
public static int[] selectionSort(int array[]) {
for (int i = 0 ; i < array.length - 1 -1; i++) {
int index = i;
int min = array[i];
for (int j = i+1; j < array.length - 1; j++) {
if(array[j] < min) {
min = array[j];
index = j;
}
}
int temp = array[i];
array[i] = array[index];
array[index] = temp;
}
return array;
}
5. 時間複雜度
選擇排序的時間複雜度為:O(n^2)。