数据结构——归并排序动图展示


前言

提示:提示:本人不喜欢用专业术语来记录知识点,所以接下来会用例题+白话文的方式记录:

归并排序(Merging Sort)是与插人排序、交换排序、选择排序不同的另一类排序方法。归并的含义是将两个或两个以上的有序表合并成一个新的有序表。


提示:以下是本篇文章正文内容,下面案例可供参考

一、归并排序

思想

归并排序的过程基于下列基本思想进行:
将两个或两个以上的有序子序列 “ 归并 ” 为一个有序序列。

在内部排序中,通常采用的是 2 路归并排序。
就是将两个位置相邻的记录有序子序列归并为一个记录的有序序列。

  • 此处引用网上一张比较经典的 gif 来展示归并排序的整个过程:

方法

将待排序记录 r[0] 到 r[n-1] 看成是n个长度为1的有序子表,把这些子表依次两两归并,便得到 [n/2] 个有序的子表,然后,再把这 [n/2] 个有序的子表两两归并,如此重复,直到最后得到一个长度为 n 的有序表为止。

例题

在这里插入图片描述

性能分析

⑴、时间复杂度为:
O(nlog2n)
⑵、所需辅助空间:
O(n)
⑶ 、算法稳定性:
是稳定排序

共需要 log2n 趟


总结

就是俩俩为一组比较,小的在前
第二趟俩组俩组比较,小的在前
以此类推
最后结果是升序

猜你喜欢

转载自blog.csdn.net/rej177/article/details/124421389