/** *插入排序思路:O(n^2) * 最外层一个循环,从第二个数到最后一个,变量为i * 每个数存储在key变量中 * 变量j,是左边已经排好序的数组的上限 * 判断key与前面每一个数比较 1,3,5,2,4,6,8,5,9,10 * 《------- * 如果key小于前一个并且已经排好序的数组没有越界 * 调换两个数 * j向左移 * * 把key放在指定位置 j+1 * */ public class InsertSort { public static void insertSort(int[] resouceArr) { for(int i = 1 ; i < resouceArr.length ; i++ ) { int key = resouceArr[i] ; int j = i - 1 ; while( j > 0 && resouceArr[j] > key) { resouceArr[j+1] = resouceArr[j] ; j = j - 1 ; } resouceArr[j+1] = key ; } } }