选择排序对冒泡排序进行了改进,使交换次数减少,但比较次数仍然没有减少。
选择排序是这样的,先从左端开始,找到下标为 0 的元素,然后和后面的元素依次比较,
如果找到了比下标 0 小的元素,那么再使用此元素,再接着依次比较,直到比较完成所有的元素,最后把最小的和第 0 个位置交换。
for (int i=0; i<data.length; i++) {
int min = i;
for (int j=i+1; j<data.length; j++) {
if (data[j] < data[min]) {
min = j;
}
}
//进行位置的交换
if (min != i) {
int temp = data[i];
data[i] = data[min];
data[min] = temp;
}
}