排序问题分析
1 插入排序
插入排序的精要在于前N个数有序,第n+1个数从后到前依次比较前N个数,如果是升序,则在比较过后将前N个数中大于第N+1个数往后移位, 再将第N+1个数插入在有序数组当中, 形成新有序数组.
public class MyInsertSort { public static void main(String[] args) { int [] arr = {14,13,12,11,16,19,15,17,18}; //初始化数组 for(int i = 1; i < arr.length; i++){ int temp = arr[i]; //取第2个数为待排序数 int j = i -1; for(;j >= 0 && arr[j] > temp;j--){ //从后往前取有序数组元素与待排序数比较 arr[j+1] = arr[j]; //满足条件后移一位 } arr[j+1] = temp; //插入待排序数 printArr(arr); } printArr(arr); } private static void printArr(int[] arr) { for(int i = 0; i < arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(); } }
[CD]啤酒不懂夜的黑_john