选择排序很直白,它的思路是循环的每一圈找到剩下没排序的数组里的最小/最大值(看你想从小到大还是从大到小了),然后将它直接和剩下的这些个元素的第一个元素交换,最终得到有序数组。
选择排序代码如下:
public static void selectionSort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
if (i != minIndex) {
array[i] = array[i] ^ array[minIndex];
array[minIndex] = array[i] ^ array[minIndex];
array[i] = array[i] ^ array[minIndex];
}
}
}