希尔&计数&基数排序

Posted foremostxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔&计数&基数排序相关的知识,希望对你有一定的参考价值。

一、希尔排序

技术分享图片技术分享图片

shell_sort

def insert_sort_gap(li,gap):
    for i in range(gap,len(li)):
        tem = li[i]  # 要插入的数
        j = i-gap # j指的是手里的牌的下标
        while li[j] > tem and j>=0:
            li[j+gap] = li[j]
            j -= gap
        li[j+gap] = tem

def shell_sort(li):
    d = len(li)//2
    while d>=1:
        insert_sort_gap(li,d)
        d//=2
import random
li = list(range(1000))
random.shuffle(li)
shell_sort(li)
print(li,最后结果)

技术分享图片

技术分享图片

技术分享图片

 

以上是关于希尔&计数&基数排序的主要内容,如果未能解决你的问题,请参考以下文章

非比较排序 (计数排序 && 基数排序)

非比较排序 (计数排序 && 基数排序)

使用python实现希尔计数基数排序

基数希尔计数桶排序

算法学习-02(希尔排序,计数排序,桶排序,基数排序)

每日算法计数&基数&桶&位图排序-简介