前言
提示:提示:本人不喜欢用专业术语来记录知识点,所以接下来会用例题+白话文的方式记录:
归并排序(Merging Sort)是与插人排序、交换排序、选择排序不同的另一类排序方法。归并的含义是将两个或两个以上的有序表合并成一个新的有序表。
提示:以下是本篇文章正文内容,下面案例可供参考
一、归并排序
思想
归并排序的过程基于下列基本思想进行:
将两个或两个以上的有序子序列 “ 归并 ” 为一个有序序列。
在内部排序中,通常采用的是 2 路归并排序。
就是将两个位置相邻的记录有序子序列归并为一个记录的有序序列。
- 此处引用网上一张比较经典的 gif 来展示归并排序的整个过程:
方法
将待排序记录 r[0] 到 r[n-1] 看成是n个长度为1的有序子表,把这些子表依次两两归并,便得到 [n/2] 个有序的子表,然后,再把这 [n/2] 个有序的子表两两归并,如此重复,直到最后得到一个长度为 n 的有序表为止。
例题
性能分析
⑴、时间复杂度为:
O(nlog2n)
⑵、所需辅助空间:
O(n)
⑶ 、算法稳定性:
是稳定排序
共需要 log2n 趟
总结
就是俩俩为一组比较,小的在前
第二趟俩组俩组比较,小的在前
以此类推
最后结果是升序