希尔排序算法讲解

希尔排序是插入排序的一种,不过更加高效,也成为缩小增量排序,直接上例子

原始数组[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]

代码实现:

java代码实现

python代码实现

go代码实现

 

 

你可能感兴趣的:(算法与数据结构,算法和数据结构)