快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程电脑软件教程 → python写归并排序

python写归并排序

时间:2022-09-19 06:45:22人气:作者:快盘下载我要评论

python写归并排序

开始今天内容之前,先给大家推荐一款审核利器,goinception,下载地址:

http://218.206.242.148:12345/images/20_tencent/20220917/rltykju12m2 自从inception闭源之后,对于SQL审核的工具都是各家开发定制各自的,这个项目goinception的审核结果和inception几乎相同,大家可以作为参考,看看是否可以直接拿来定制自己的审核工具。

回来比较晚了,写点python程序吧,python实现归并排序。

归并排序大家可能都不陌生,它的主要逻辑如下:

1、将一个序列拆分为两个序列

2、将这两个子序列按照第一步的方法再进行拆分

3、等到所有的序列都拆分为1个元素的时候,再两两进行排序,合并成一个有序序列即可。

整个排序思路,有一个先分再合的过程,如下:

# 这个函数用来将两个有序序列合并成一个有序序列
def merge(a, b):
    c = []
    h = j = 0
    while j < len(a) and h < len(b):
        if a[j] < b[h]:
            c.append(a[j])
            j += 1
        else:
            c.append(b[h])
            h += 1
    # 如果某个序列被合并完毕,则补齐另外一个序列的剩余值即可
    if j == len(a):
        for i in b[h:]:
            c.append(i)
    else:
        for i in a[j:]:
            c.append(i)
    return c


def merge_sort(lists):
    if len(lists) <= 1:
        return lists
    middle = len(lists)//2
    # 进行拆分
    left = merge_sort(lists[:middle])
    right = merge_sort(lists[middle:])
    return merge(left, right) #递归的思路


if __name__ == '__main__':
    a = [10,14,33,2,39,8,41]
    print (merge_sort(a))

运行结果如下:

[2, 8, 10, 14, 33, 39, 41]

Process finished with exit code 0

执行时间复杂度:N*logN

有帮助的话还希望点下再看哈

相关文章

  • Python处理Excel数据-pandas篇

    Python处理Excel数据-pandas篇,在计算机编程中,pandas是Python编程语言的用于数据操纵和分析的软件库。特别是,它提供操纵数值表格和时间序列的数据结构和运算操作。它的名字衍生自术语“面......
  • Ubuntu安装qt5

    Ubuntu安装qt5_qt5安装教程,最近打算学一下QT应用程序开发,所以打算装一个QT桌面环境QtCreator,捣鼓了一阵,把电脑弄坏重装系统之后,终于安装好了,这里分享一下安装的过程...

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。