选择排序的通俗解释
以正序为例,选择排序就是每次循环都找到最小的放到前面,设置起始点,从起始点开始往后找,找到比他小的然后和他交换位置,然后结束之后就走下一个位置,所以过程就是不断的选择最适合这个位置的数据,时间复杂度为O(n^2)
选择排序过程的动图展示
代码实现
public static void main(String[] args) throws Exception {
int[] data = new int[]{4,3,2,6,1,8,5,4,10,9};
sort(data);
System.out.println(Arrays.toString(data));
}
public static void sort(int[] data){
//第一层循环位置
for (int i = 0; i < data.length; i++) {
//找到合适数据的index
int index = -1;
//存储比较的值
int tempData= data[i];
for (int j=i;j<data.length;j++){
//如果找到更小的,那么就记录更小的,然后用更小的去比较,直到找到当前循环最小的
if(data[j]<tempData){
index = j;
tempData = data[j];
}
}
//如果找到了这样的数据,就进行交换
if(index != -1){
int temp = data[i];
data[i] = data[index];
data[index] = temp;
}
}
}