韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > 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电脑。

关注

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

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

妈妈你真棒插曲视频快来救救我| 戴着小玩具练瑜伽| 地下室SMS录制的全部内容| 成全高清免费观看MV| 百度CREATE2025| 小电影| 老公把舌头放进我B里搅拌| 9.1快看| 蜜桃| 朕心爱的丑姑娘| 《交换做爰》在线观看| 《共享弟夫》动漫在线观看免费| 男同桌硬了把我内裤也脱了| 性别饥饿妈妈| 色美美| 乖把脚分开BY全文免费阅读| 鲁鲁影院免费观看电视剧电影| 学校教室里可以插自己电脑吗 | 《高压监狱2》完整版| 他的大手在秘密花园游走漫画| 一路向西| 《温柔的老师》电影免费观看 | 小饰品| 坤坤寒进桃子里在线看歌词| 雨后小故事GIF| 欧美大片PPT| 线人电影免费观看完整版| 免费观看已满十八岁电视剧在线播. | 搜索引擎| 白色变态蕾丝超薄开档连身袜| 美国性伦1980禁忌禁忌| WWW.CRI.8888888..| 苍井空| 情满四合院| 男人添女人荫道口视频| 苍老师《荷尔蒙》| 《性呻吟》伦理| 我是谁| GTV一同看GTV蓝颜| 韩国电影片| 欧美大妈LOGO大全及价格图