标签:bsp 改进 com height dom sts arrays 状态 test
while (h < n / 3) {h = 3 * h + 1;}
// 希尔排序(从小到大)public class TestShellSort {@Testpublic void test() {// 赋初始值int[] arr = new int[10];for (int i = 0; i < 10; i++) {arr[i] = (int) (100 * Math.random());}System.out.println("排序之前:\n" + java.util.Arrays.toString(arr) + "\n");// 进行排序// 确定本次的增量int h = 1;while (h < arr.length / 3) {h = 3 * h + 1;}// 依次按增量进行排序while (h > 0) {for (int i = h; i < arr.length; i++) {// 储存i位置元素int temp = arr[i];// 判断当前元素是否需要排if (arr[i] < arr[i - h]) {int j = i - h;// 只要j位置元素大于当前元素 temp,指针就往左移1增量,且j位置元素右移1增量for (; j >= 0 && arr[j] > temp; j -= h) {arr[j + h] = arr[j];}// 找到第一个比 temp 小的元素或者遍历到了起始位置,把 temp 赋值给这个位置右1个增量位置的元素arr[j + h] = temp;}}// 下一次的增量h = (h - 1) / 3;}// 输出结果System.out.println("排序之后:\n" + java.util.Arrays.toString(arr));}}
标签:bsp 改进 com height dom sts arrays 状态 test
原文地址:http://www.cnblogs.com/chendifan/p/6768106.html