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)。