希尔排序

希尔排序
希尔(Shell)排序又称为缩小增量排序,它是一种插入排序。它是直接插入排序算法的一种威力加强版。
希尔排序,也称递减增量排序算法,以其设计者希尔(Donald Shell)的名字命名,该算法由 1959 年公布。

def shellSort(input_list):
    length=len(input_list)
    if length<=1:
        return input_list
    sorted_list=input_list
    gap=length//2
    while gap>0:
        for i in range(gap,length):
            j=i-gap
            temp=sorted_list[i]
            while j>=0 and temp<sorted_list[j]:
                sorted_list[j+gap]=sorted_list[j]
                j-=gap
            sorted_list[j+gap]=temp
        gap//=2
    return sorted_list

if __name__=='__main__':
    input_list=[6,4,8,9,2,3,1]
    print('排序前',input_list)
    sorted_list=shellSort(input_list)
    print('排序后',sorted_list)

希尔排序,他的主要思想是先把比较大放到后面,然后把比较小的移到前面去。你想他开始以gap这个步长。然后集体就可以并行的集体的去往后移这个操作。这样的话,它就是可以用多处理器来进行处理,而不是用单个处理器一个一个的来进行处理。
在这里插入图片描述
当他步长不为一的时候,他内个步长里面的每一个数开一个线程,就是步长是多少就开几个线程
然后他最后想要确定他排序完成了,还是要进行一次直接插入排序即步长为一的排序,那个时候因为他已经排的差不多了所以时间复杂度用不了N^2.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值