希尔排序
希尔排序是插入排序的一种,又称缩小增量排序
,是对插入排序的一个改进。
原理
对于一个给定的长度为n的数组,希尔排序是根据一个变量h(n>h>=1)把数组分为多个子分组,每个分组使用插入排序排好,h逐渐递减至1。
h的取值没有一个明确的规定,比如你可以每次取上一次的一半,第一次为数组长度的一半,也可以使用三分之一。
代码
1 | public void sort(Comparable[] arr) { |
希尔排序是插入排序的一种,又称缩小增量排序
,是对插入排序的一个改进。
对于一个给定的长度为n的数组,希尔排序是根据一个变量h(n>h>=1)把数组分为多个子分组,每个分组使用插入排序排好,h逐渐递减至1。
h的取值没有一个明确的规定,比如你可以每次取上一次的一半,第一次为数组长度的一半,也可以使用三分之一。
1 | public void sort(Comparable[] arr) { |