/** * 希尔排序 * * @param array */public void XiErSort(int[] array) {// 循环增量(就是每个子数组的个数,当子数组个数为1时,排序就完成)for (int increment = array.length / 2; increment > 0; increment = increment / 2) {// 对increment个子数组进行排序for (int i = 0; i < increment; i++) {// 对子数组进行直接插入排序for (int j = i; j < array.length; j = j + increment) {// 拿到索引为j的值,依次前面的所有的值比较for (int k = j; k > 0; k = k - increment) {// 当后面的值小于前面的值的时候,2个数交换if (array[k] < array[k - 1]) {// 交换2个数的位置int temp = array[k];array[k] = array[k - 1];array[k - 1] = temp;}}}}}}