问题标题: #%&$%!^rihxiu4fh4uncur4fx8inhsui43shdihno

0
0
已解决
李泽远
李泽远
高级天翼
高级天翼

本人编程萌新,请各位大佬给我展示展示归并排序的C++代码

不要从网上找,网上的代码看着难受

李泽远在2020-07-30 11:01:37追加了内容

归并排序

李泽远在2020-07-30 11:10:18追加了内容

刚刚谁给我刷信息!4249条!!!我现在信息系统瘫痪了,502bad,谁干的,站出来!!!

李泽远在2020-07-30 11:11:43追加了内容

张某某,给我滚!!!赔我的问答未读信息系统!!!

李泽远在2020-07-30 11:15:28追加了内容

是朋友的帮我一把,给张天璨刷赞,把它的未读信息刷爆


0
已采纳
王子健
王子健
初级天翼
初级天翼

归并排序,你说的是归并排序?什么J6的课程,我早就学了,但不知道是不是你要的:

 

这是我们邢老师带我们写的注释,你看一下:

#include <iostream>
using namespace std;
int a[1000005], b[1000005], c[2000015];
int main() {
    int m, n;
    cin >> m; 
    for (int i=1; i<=m; i++) {
        cin >> a[i];
    }
    cin >> n;
    for (int i=1; i<=n; i++) {
        cin >> b[i];
    }
    int i=1, j=1, k=0;
    while (i<=m && j<=n) {
        if (a[i] < b[j]) {
            c[++k] = a[i];
            i++;
        } else {
            c[++k] = b[j];
            j++;
        }
    }
    //将剩下的元素接到c数组后面
    while (i<=m) {
        c[++k] = a[i];
        i++;
    } 
    while (j<=n) {
        c[++k] = b[j];
        j++;
    }
    for (int i=1; i<=k; i++)
        cout << c[i] << " ";
    return 0;
}

(不能保证是你要的)

0
黄子扬
黄子扬
初级天翼
初级天翼
#include<iostream>
#include<cstdio>
using namespace std;
int t[100005],s[100005];
void MergeSort(int l,int r)
{
    if(l==r) return;
    int mid=(l+r)/2;
    MergeSort(l,mid);
    MergeSort(mid+1,r);
    int p=l,q=mid+1,i=l;
    while(p<=mid&&q<=r)
    {
        if(s[p]<s[q])
            t[i++]=s[p++];
        else
            t[i++]=s[q++];
    }
    while(p<=mid)
        t[i++]=s[p++];
    while(q<=r)
        t[i++]=s[q++];
    for(int i=l;i<=r;i++)
    s[i]=t[i];
}
int main()
{
    int i,n;
    cin>>n;
    for(i=1;i<=n;i++)
        scanf("%d",&s[i]);
    MergeSort(1,n);
    for(i=1;i<=n;i++)
        printf("%d ",s[i]);
    cout<<endl;
    return 0;
}

虽然结贴了还是过来贴一下

0
赵逸凡
赵逸凡
初级启示者
初级启示者

归并排序貌似是J6课程

@黄子扬 

@黄子扬 有

竞赛书上也有

我要回答