基本思想
在一组元素中选择具有最小排序码的元素,若它不是这组元素中的第一个元素,则将它与这组元素中的第一个元素对调;在未排序的剩下的元素中重复执行以上步骤,直到剩余元素只有一个为止。
代码
private void selectSort(int[] a, int left, int right) {
for (int i = left; i < right; i++) {
int k = i;
int temp;
for (int j = i + 1; j <= right; j++) {
if (a[j] < a[k])
k = j;
}
if (k != i){
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}
性能分析
- 时间复杂度
简单选择排序的排序码比较次数 KCN