C++归并排序

#include <iostream>
using namespace std;
void h(int a[],int a1[],int x,int t,int y){
    int z=x;
    int v=t+1;
    int k=x;
    while(x<=t&&v<=y){
        if(a[x]<a[v]){
            a1[k]=a[x];
            k++;
            x++;
        }
        else{
            a1[k]=a[v];
            k++;
            v++;
        }
    }
    while(x<=t){
        a1[k]=a[x];
        k++;
        x++;
    }
    while(v<=y){
        a1[k]=a[v];
        k++;
        v++;
    }
    for(int i=z;i<=y;i++){
        a[i]=a1[i];
    }
}
void m(int a[],int a1[],int x,int y){
    if(x<y){
        int t=(x+y)/2;
        m(a,a1,x,t);
        m(a,a1,t+1,y);
        h(a,a1,x,t,y);
    }
}

int main(){
    int n,a[105],a1[105]={0};
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
    }
    m(a,a1,0,n-1);
    for(int i=0;i<n;i++){
        cout<<a[i]<<" ";
    }
}

  

原文链接: https://www.cnblogs.com/theflight/p/13166445.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    C++归并排序

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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

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

(0)
上一篇 2023年3月2日 上午11:31
下一篇 2023年3月2日 上午11:31

相关推荐