归并排序

跳转地址

归并排序的重点是合并,利用双指针算法,排序的是否稳定是指如果两个数的大小相同,在经过排序后相对位置不变,那么这个排序就是稳定的,否则就是不稳定的

归并排序的思路是将数组按照mid分开成为两部分,然后先进行递归再排序,排序时按照双指针算法进行排序,用temp存放结果最后将temp中的结果赋值给排序数组,用于后续递归操作,具体思路写在代码注释里面了

#include
using namespace std;
const int N =100010;
int q[N], tmp[N];
void merge_sort(int q[], int l, int r)
{
    if(l >= r) return ;
    else
    {
        int mid = l + r >>1;
        merge_sort(q, l, mid);
        merge_sort(q, mid + 1, r);
        int i = l, j = mid + 1, k = 0;
        //双指针合并操作,两个部分都是有序的
        while(i

Original: https://www.cnblogs.com/amour233/p/16466778.html
Author: LYL233
Title: 归并排序

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/644111/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球