- 选择排序是一种简单直观的排序算法,它的原理很简单,第一次比较后,选择最小的记录与第一个交换。接着不包括第一个记录进行比较,选择第二个最小的记录与第二个交换,以此类推。
下面,以例子的方式详细介绍一下选择排序:
假设有数组: 8 4 3 5 7
第一轮排序: [3] 4 8 5 7
第二轮排序: [3 4] 8 5 7
第三轮排序: [3 4 5] 8 7
第四轮排序: [3 4 5 7] 8
最后排序结果: 3 4 5 7 8
知道了原理 那么代码也很好写了:
public static void selectSort(long[] array){
long minValue = 0;
int minFlag = 0;
for(int i = 0 ; i<array.length-1;i++){
minValue = array[i];
minFlag = i;
for(int j = i+1;j<array.length;j++){
if(minValue > array[j]){
minValue = array[j];
minFlag = j;
}
}
if( minFlag != i){
array[minFlag] = array[i];
array[i] = minValue;
}
}
}
测试:
public static void main(String[] args) {
// TODO Auto-generated method stub
long[] temp = new long[]{2,4,6,5,3,1};
selectSort(temp);
System.out.println("select sort:");
for(int i = 0 ; i<temp.length;i++){
System.out.print(temp[i]+" ");
}
}
输出结果:
465

被折叠的 条评论
为什么被折叠?



