选择排序是排序算法中最简单的一种,在数据量比较大时效率是非常低的。
时间复杂度:最佳、最差以及平均时间复杂度均是O(n^2)
空间复杂度:O(1)
稳定性:不稳定
Java版的一种实现如下:
public void sort(T[] arr) {
if (arr == null || arr.length == 1) {
return;
}
int len = arr.length;
for (int i = 0; i < len; i++) {
int k = i;
for (int j = i + 1; j < len; j++) {
if (arr[j].compareTo(arr[k]) < 0) {
k = j;
}
}
if (k != i) {
swap(arr, k, i);
}
}
}