选择排序的思想是将数组a[0]和之后的数比较,选择出最小的和a[0]交换,然后忽略a[0],再将a[1]和之后的数比较,选择最小的和a[1]交换,直到a[n-1]和a[n]比较。
private static void selectionSort(int[] a) {
for (int i = 0; i < a.length - 1; i++) {
int smallIndex = selectSmall(a,i,a.length - 1);
swap(a, i, smallIndex);
}
}
private static int selectSmall(int[] a, int first, int end) {
int min = a[first];
int minIndex = first;
for (int i = first + 1; i <= end; i++) {
if(min > a[i]){
min = a[i];
minIndex = i;
}
}
return minIndex;
}
private static void swap(int[] a, int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}