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

文章 > Python基础教程 > python归并排序的实现原理

python归并排序的实现原理

python归并排序

头像

小妮浅浅

2021-08-09 10:09:092701浏览 · 0收藏 · 0评论

原理分析

1、把一个序列从中间位置分成两个序列;

2、把这两个子序列按第一步继续分成两部分;

3、直到所有子序列的长度都是1,也就是说,不能再有二分截止。此时再两两合并成一个有序的序列。

实例

def merge(arr, low, mid, high):
    # low 和 high 为整个数组的第一个和最后一个位置索引,mid 为中间位置索引
    # i 和 j 为指针,最初位置分别为两个有序序列的起始位置
    # ltmp 用来存放合并后的序列
    i = low
    j = mid+1
    ltmp = []
    while i <= mid and j <= high:  # 只要左右两边都有数
        if arr[i] < arr[j]:        # 当左边的数小于右边的数
            ltmp.append(arr[i])    # 将左边的数存入 ltmp
            i += 1                 # 左边的指针往右移一位
        else:                      # 当右边的数小于左边的数
            ltmp.append(arr[j])    # 将右边的数存入 ltmp
            j += 1                 # 右边的指针往右移一位
    # 上面的 while 语句执行完后,左边或者右边没有数了
    while i <= mid:                # 当左边还有数的时候
        ltmp.append(arr[i])        # 将左边剩下的数全部存入 ltmp
        i += 1
    while j <= high:               # 当右边还有数的时候
        ltmp.append(arr[j])        # 将右边剩下的数全部存入 ltmp
        j += 1
    arr[low:high+1] = ltmp         # 将排序后的数组写回原数组
 
 
def merge_sort(arr, low, high):       # low 和 high 为整个数组的第一个和最后一个位置索引
    if low < high:                    # 至少有两个元素
        mid = (low + high) // 2
        merge_sort(arr, low, mid)     # 把左边递归分解
        merge_sort(arr, mid+1, high)  # 把右边递归分解
        merge(arr, low, mid, high)    # 做归并

以上就是python归并排序的实现原理,希望对大家有所帮助。更多Python学习指路:python基础教程

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

关注

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

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

免费B站看大片真人电视剧| 出差3| 5YY3.CNV7Y7.CC| 《美丽妻子替夫还债》剧情| 男同短片| 女性左腿又开腿肚子中间疼视频| 二人世界高清视频播放| 泰剧《劈开你的腿》免费观看| 打扑克| 女人喜欢快抽还是慢送?| 《办公室高潮秘书2》电影| 《饥饿妻子》完整版在线观看| 被灌满精子的女人会得白血病吗| 特殊按摩治疗师| 苍井空AV成人片免费观看| 《性88分钟》| 俄罗斯电影| EXO妈妈MV高清视频播放| 妈妈可以帮儿子解决心理需要| 教练车内含乳挺进她漫画| 父女一起到达巅峰的小说| 我兄弟的妈妈免费观看电视剧 | 雨后小故事无删减版GIF| 麻豆传媒| 大雷QQ弹弹摇晃| 母亲和女婿免费高清电视剧 | 他扒开我小流添我三男一女视频| 《乳牛牧场的奶牛娘》动漫免费观.| 黑料吃瓜| 台湾版《黄花闺女》完整版| 欧美-区| -区二区三区| 含着奶做着爱太舒服了| 张钧甯怎么读| 百度推荐官| 器材室轮-」-(1):蒙着眼在..| 妻子在厨房被三个男人欺负的后果| 1-46集电视剧免费观看 | 三个老头捆着躁我一个| 真人老太太实战镖客视频| 全飞秒手术2024价目表