国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > python中如何进行希尔排序?

python中如何进行希尔排序?

Python 希尔排序 编程

头像

宋雪维

2020-12-06 14:35:362892浏览 · 0收藏 · 0评论

如果问大家用于科学计算,属于插入类排序的缩小增量法是什么?你知道吗?其实是希尔排序法。 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法。它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会向大家向大家介绍python中的希尔排序及其使用代码。

希尔排序

背景:插入排序在小规模数据、数据基本有序时效率较高

思想:将序列分为若干子序列进行插入排序,待序列基本有序时,对整体进行插入排序

代码:

# python实现希尔排序(插入排序的一种)
# 先宏观进行调整,在进行微观调整
 
def shellSort(lst, k, reverse=False):
    length = len(lst)
    dk = k # 设置一个增量dk
    while dk > 0:
        for i in range(dk, length):
            temp = lst[i]
            j = i
            while j >= dk and lst[j - dk] > temp:
                lst[j] = lst[j - dk]
                j -= dk
            lst[j] = temp
        dk = int(dk / 2)
    if reverse == False:
        return lst
    else:
        lst.reverse()
        return lst

输出:

test1 = [19, 21, 4, 6, 25, 3, 99, 67, 12]
test2 = [19, 21, 4, 6, 25, 3, 99, 67, 12]
data1 = shellSort(test1, 7)
data2 = shellSort(test2, 2, True)
print("从小到大:", data1)
print("从大到小:", data2)

希尔排序在最优时间复杂会根据步长序列的不同而不同,最坏时间复杂度是O(n^2),在操作过程中是不稳定的,要注意哦~


关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

妈妈和女婿免费播放电视剧大全| 《不戴套瑜伽教练3》| 可切换老司机模式浏览器 | 黄金网站9.1免费入口| 可儿的奶水喂爸爸吃可以吗| 咒术回战第一季在线观看免费观看| [汉化版]全彩漫画免费阅读 | 白色变态蕾丝超薄开档连身袜| JIXIESHI| 教练车内含乳挺进她漫画| 《訾花交换做爰》| 糖心| 日大B舒服还是小B舒服呢| 我故意对着床上的小能做手工图片| 白日梦我百度百科| 他解开内裤把舌头进去的视频 | 麻花星空传剧原创MV在线| 小妹3| 《麦子的秘密2》| 法国《口咬》电影完整版| 老公弄我一边干一边说粗话| 日本插槽X8X8与X8X8的区..| 《再来一次好吗》日剧观看| 《丰满的女邻居》播放| 妈妈你真棒插曲最后接吻是谁| 二人世界一男一女| 美女两个球球抖动抓球球视频| 少女初恋吃小头头视频免费 | 国精产品一品二品国精| 淘宝情趣记事BY欲晓| 淘宝情趣记事BY欲晓| 美女和老板一起努力做豆浆| 邻居交换做爰5| 成 人香蕉 黄 色 网 站 视..| 杨思敏电影| 徐婷被房东揉到高潮的视频| 女性无裆连体内衣| 臭小子快拔出来危险期会怀孕 | 妈妈装睡配合孩子阴阳调和| 《男医生的特殊治疗》| 被带到满是X玩具的房间挑调游戏 合不拢腿(双)BY粗眉毛免费阅.. 军官(巨肉高H)