下面,以例子的方式详细介绍一下选择排序: 假设有数组: 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]+" "); } }输出结果: