- 思路
- 算法属性
- 代码
思路
- 从待排序序列中,找到关键字最小的元素;
- 将其和第一个元素互换;
- 从余下的 N - 1 个元素中,重复(1)、(2)步,直到排序结束。
算法属性
算则排序法的比较次数与序列的初始排序无关。 假设待排序的序列有 N 个元素,则比较次数总是N (N - 1) / 2。
简单选择排序需要占用 1 个临时空间,用于保存最小值得索引。
排序类型 | 时间复杂度(平均) | 时间复杂度(最坏) | 时间复杂度(最好) | 空间复杂度 | 稳定性 | 复杂性 |
交换排序 | O(N^2) | O(N^2) | O(N^2) | O(1) | 不稳定 | 简单 |
代码
public static int[] selectSort(int[] inputList) {
int size = inputList.length;
if (size == 0)
return inputList;
for (int i = 0; i < size; i++) {
int minIndex = i;
for (int j = i; j < size; j++) {
if (inputList[j] < inputList[minIndex]) {
minIndex = j;
}
}
int tem = inputList[i];
inputList[i] = inputList[minIndex];
inputList[minIndex] = tem;
}
return inputList;
}