package org.lion.euler.study.sort;
/**
* 希尔排序
* <pre>
* 原理:跨间隔元素的插入排序,从一开始数组长度的1/2,直到间隔为1.
* </pre>
* @author lion
*
*/
public class ShellSort extends AbstractSort {
@Override
public void sort(Integer[] array) {
int inc = array.length / 2;
while (inc > 0) {
for (int i = 0, j = i; i < array.length - inc; i += 1, j = i) {
int ai = array[i + inc];
while (j >= 0 && ai < array[j]) {
array[j + inc] = array[j];
if (j - inc < 0) {
j -= inc;
break;
}
j -= inc;
}
array[j + inc] = ai;
}
inc /= 2;
}
}
}
排序-JAVA实现【九】希尔排序
最新推荐文章于 2020-06-24 18:11:51 发布