算法系列<选择排序>
选择排序:第一趟从n个元素的数据序列中选出关键字最小(或者最大)的元素并放到最前(最后)的位置,下一趟再从n-1个元素中选出最大(最小)的元素并放到次前(后)位置,依次类推,经过n-1趟完成排序。
用java实现如下:
/** * 选择排序 * 最好时间复杂度O(n^2),最坏时间复杂度O(n^2),平均时间复杂度O(n^2),空间复杂度O(1) * 测试case:
* case1:null
* case2:{} * case3:{1} * case4:{1,4,2,3,6} * case5:{5,4,3,2,1} * @param array1 */ public static void selectSort(int[] array1){
if(array1!=null){ int n=array1.length; if(n>1){ for(int i=1;i<=n-1;i++){ int min=i-1; for(int j=i;j<=n-1;j++){ if(array1[j]<array1[min]){ min=j; } } if(min!=i-1){ int temp=array1[min]; array1[min]= array1[i-1]; array1[i-1]=temp; } } }
} }