选择排序是八大排序算法之一。
其排序原理:在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换其数据的索引位置,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换…第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。选择排序与冒泡排序有点不同的是,选择排序是先交换下标,然后再交换数值。
public static void selectSort(int[] array){
for(int i = 0;i < array.length-1; i++){
int index = i;
for(int j = i+1;j < array.length; j++){
if(array[index] > array[j]){
index = j; //说明找到了比Index小的数的下标
}
}
if(index != i){ //如果最小的数位置发生了变化就交换
int temp = array[index];
array[index] = array[i];
array[i] = temp;
}
}
}
选择排序应用场景:应用在数据量较小的情况下。