标准的选择排序
/** * 选择排序 * 原理:每次都选出最小值,依次赋给数组位置:0,1,2...... */ public void sort4() { int[] a = new int[]{1, 4, 3, 6, 8, 9, 14, 15, 21, 21}; for(int i = 0; i < a.length - 1; i++) {// 做第i趟排序 int k = i; for(int j = k + 1; j < a.length; j++){// 选最小的记录 if(a[j] < a[k]){ k = j; //记下目前找到的最小值所在的位置 } } if(k != i){//交换a[i]和a[k] int temp = a[i]; a[i] = a[k]; a[k] = temp; } } System.out.println(Arrays.toString(a)); }
时间复杂度
两个循环,时间复杂度n^2,由于改变了数组位置,是不稳定排序。