首页 > 其他分享 >归并排序

归并排序

时间:2022-09-23 01:56:28浏览次数:56  
标签:tmp 归并 num1 num2 复杂度 high low 排序

平均时间复杂度:O(nlogn)

最佳时间复杂度:O(n)

最差时间复杂度:O(nlogn)

空间复杂度:O(n)

排序方式:In-place

稳定性:稳定


def merge_sort(num1, num2):  # 按大小合并数组
    tmp = []
    low = 0
    high = 0
    while low < len(num1) and high < len(num2):
        if num1[low] < num2[high]:
            tmp.append(num1[low])
            low = low + 1
        else:
            tmp.append(num2[high])
            high = high + 1
    if low == len(tmp):
        for i in num2[high:]:
            tmp.append(i)
    else:
        for i in num1[low:]:
            tmp.append(i)
    return tmp
 
 
def merge(list):  # 划分数组
    if len(list) <= 1:
        return list
    mid = len(list) // 2
    left = merge(list[:mid])
    right = merge(list[mid:])
    return merge_sort(left, right)
 
 
if __name__ == '__main__':
    list = [4, 1, 2, 3]
    num = merge(list)
    print(num)

标签:tmp,归并,num1,num2,复杂度,high,low,排序
From: https://www.cnblogs.com/miyol/p/16721391.html

相关文章

  • 「浙江理工大学ACM入队200题系列」问题 A: 零基础学C/C++34—— 3个数比较大小(冒泡排
    深夜写的,代码都还没来得及跑一便,可能有错误,欢迎指出,后续会检验一遍并修改错误.本题是浙江理工大学ACM入队200题第四套中的A题,同时给出了冒泡排序和选择排序算法......
  • python基础__十大经典排序算法
    用Python实现十大经典排序算法!排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序......
  • 排序方法
    所谓排序、就是根据排序码的递增或者递减序列把数据元素依次排列起来,使一组任意排列的元素变为一组按其排序码线性有序的元素。八大排序是《数据结构》这门大学计算机必修......
  • C++排序程序
      今天,有点感冒。粘贴个图片,有空再写代码。   ......
  • Capital Program 剩下k个点的集合,到其它所有点的最大距离最小 拓扑排序
    链接:https://ac.nowcoder.com/acm/contest/35146/B来源:牛客网题目描述Thereisakingdomthathasnnncitiesconnectedbyn−1n-1n−1r......
  • 自认玄学的一道排序题???
    这两天回头大复习,做了一下洛谷的一道题知识点是手写快排加分治P1923【深基9.例4】求第k小的数自己写的代码交了20篇整才照着题解写出来篇AC的(太屑了然而还有好多问......
  • Antd Tree,实现排序拖动,父子层级内外拖动
    拖动属性dropToGap,dropPosition属性解释:dropToGap:boolean类型,true代表拖拽到节点之间的缝隙中,false代表拖拽到节点上,即节点的内容区。dropPosition:拖拽的时候,针对一......
  • LeetCode 做题 简单【 删除排序链表中的重复元素】 链表
    【删除排序链表中的重复元素】给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例1:输入:head=[1,1,2]输......
  • 排序算法基本思想及实现
    一、插入排序1、直接插入排序基本思想:类似抓扑克牌,待排序元素在已排序的序列中从后往前遍历,遇到小于他的元素向后移一位,直至遇到小于或等于他的元素,在其后插入即......
  • 排序算法动画演示
    本文由简悦SimpRead转码,原文地址blog.csdn.net一、直接插入排序(StraightInsertionSorting)把新的数据插入到已经排好的数据列中。将第一个数和第二个数排序,......