1.选择排序概述
- 每次将要排序的组合中最小(大)的元素放在最后,直到没有要排序的元素。
2.代码实现
public static void selectSort(int[] n) {
for (int i = 0; i < n.length; i++) {
int min = i;//设定最小值暂时为n[i]
for (int j = i; j < n.length; j++) {
if (n[j] < n[min]) {
min = j;//循环找出最小值
}
}
int temp = 0;//将最小值与n[i]交换
temp = n[min];
n[min] = n[i];
n[i] = temp;
}
}
- 时间复杂度依然为O(n^2)
3.与冒泡排序比较
相同处,都是每次循环一一比较,然后的到最大(小)值。
不同处,冒泡排序时比较一次,交换一次。选择排序时比较一个循环,然后交换一次,交换次数远远少于冒泡排序。