思想:每一趟从待排序的元素中选出关键字最大(或最小)的元素,按顺序放在已排序的元素最后面(或最前面),直到排序完成。
java实现
private static void selectSort(int[] data, int n) {
int i, j, k;
int tmp;
for (i = 0; i < n - 1; i++) {
k = i;
for (j = i + 1; j < n; j++) {
if (data[j] < data[k])
k = j;
}
if (k != i) {
tmp = data[i];
data[i] = data[k];
data[k] = tmp;
}
}
}
简单选择排序跟冒泡排序很像,不过比冒泡排序更优。每趟排序最多交换一次元素,冒泡排序可能交换很多次。