选择排序(冒泡排序)
2020-07-15 本文已影响0人
面向全麦面包编程
核心代码
public static void sort(Comparable[] a) {
//将a[]按升序排列
int N = a.length;
for (int i = 0; i < N; i++) {
int min = i;
for (int j = i + 1; j < N; j++) {
if (less(a[j], a[i])) min = j;
}
exch(a, i, min);
}
}
Tips:
- 选择排序的运行时间是平方级别的,不需要额外的存储空间
- 选择排序核心思想是外循环每次确定当前的最小元素(范围:[i,a.length-1]),内循环只是在比较当前元素与目前已知的最小元素,其实就是每次选择一个最小的
- 选择排序不会访问索引左侧的元素