希尔排序是插入排序的一种,不过更加高效,也成为缩小增量排序,直接上例子
原始数组[1,0,2,10,9,70,5,6,3]
我们先选择增量 length/2,如上9/2=4,分为4组,分别是【1,9】,【0,70】,【2,5】,【10,6】加上剩下的一组【3】
然后给每个数组进行排序,得到[1,0,2,6,9,70,5,10,3]
然后再选择增量length/2/2,如上9/2/2=2,分为2组,分别是【1,0,2,6】,【9,70,5,10】,加上剩下的一组【3】
然后给每个数组进行排序,得到[0,1,2,6,5,9,10,70,3]
然后再选择增量length/2/2/2,如上9/2/2/2=1,分为1组,为[0,1,2,6,5,9,10,70,3]
然后排序,得到[0 1 2 3 5 6 9 10 70]
代码实现:
希尔排序详解

842

被折叠的 条评论
为什么被折叠?



