python实现【归并排序】(MergeSort)

简介: python实现【归并排序】(MergeSort)

python实现【归并排序】(MergeSort)


算法原理及介绍


并排序的核心原理是采用分治法(Divide and Conquer)递归调用;将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。然后将两个有序表合并成一个有序表,最终完成所有元素的排序。


算法过程描述


具体算法过程描述如下:


  1. 把长度为n的输入序列分成两个长度为n/2的子序列;


  1. 对这两个子序列分别采用归并排序(递归调用);


  1. 将两个排序好的子序列合并成一个最终的排序序列。


算法排序图解如下

2020120114322039.gif


python实现代码


def merge(left, right):
    # 合并两个有序列表
    res = []
    while len(left) > 0 and len(right) > 0:
        if left[0] < right[0]:
            res.append(left.pop(0))
        else:
            res.append(right.pop(0))
    if left:
        res.extend(left)
    if right:
        res.extend(right)
    return res
def mergeSort(arr):
    # 归并函数
    n = len(arr)
    if n < 2:
        return arr
    middle = n // 2
    left = arr[:middle] # 取序列左边部分
    right = arr[middle:]# 取序列右边部分
    # 对左边部分序列递归调用归并函数
    left_sort = mergeSort(left) 
    # 对右边部分序列递归调用归并函数
    right_sort = mergeSort(right)
    # 
    return merge(left_sort, right_sort)



相关文章
|
3月前
|
搜索推荐 算法 Python
如何实现归并排序算法? 要求:编写一个Python函数,输入一个无序列表,返回排序后的列表。
如何实现归并排序算法? 要求:编写一个Python函数,输入一个无序列表,返回排序后的列表。
40 2
|
1月前
|
分布式计算 并行计算 算法
探索排序的宇宙奥秘:Python中归并排序的并行处理与分布式应用!
【7月更文挑战第11天】归并排序是一种分治算法,适用于并行和分布式处理。在Python中,利用`concurrent.futures`可实现并行归并排序,但因GIL限制,可能需借助`multiprocessing`或GPU库。分布式归并排序则通过分布式框架如Apache Spark处理大规模数据,每个节点独立排序后进行网络合并。并行与分布式技术提升了处理大数据的速度和效率。**
28 9
|
1月前
|
存储 算法 搜索推荐
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
【7月更文挑战第12天】归并排序是高效稳定的排序算法,采用分治策略。Python 实现包括递归地分割数组及合并已排序部分。示例代码展示了如何将 `[12, 11, 13, 5, 6]` 分割并归并成有序数组 `[5, 6, 11, 12, 13]`。虽然 $O(n log n)$ 时间复杂度优秀,但需额外空间,适合大规模数据排序。对于小规模数据,可考虑其他算法。**
57 4
|
1月前
|
搜索推荐 算法 大数据
Python排序大法揭秘!归并排序:如何优雅地合并两个世界?
【7月更文挑战第11天】归并排序是Python中一种高效优雅的排序算法,基于分而治之的思想,将数组拆分成小部分,分别排序后再合并。Python实现归并排序的关键在于递归地分割和有序合并数组。其稳定性和O(n log n)的时间复杂度使其在大数据处理中表现出色。通过学习归并排序,我们可以深化对编程思维的理解并提升解决问题的能力。
32 1
|
3月前
|
搜索推荐 算法 Python
python实现归并排序算法。
【2月更文挑战第9天】【2月更文挑战第24篇】python实现归并排序算法。
32 2
|
3月前
|
算法 搜索推荐 Python
Python 数据结构和算法:如何实现快速排序和归并排序?
Python 数据结构和算法:如何实现快速排序和归并排序?
36 1
|
9月前
|
算法 搜索推荐 Python
Python算法——归并排序
Python算法——归并排序
82 1
|
8月前
|
大数据 定位技术 vr&ar
分治策略之归并排序(Python实现)
分治策略之归并排序(Python实现)
60 0
|
Python
Python实现因子分析(附案例实战)
Python实现因子分析(附案例实战)
1382 0
Python实现因子分析(附案例实战)
Python print() 打印两个 list ,实现中间换行
Python print() 打印两个 list ,实现中间换行