zoukankan      html  css  js  c++  java
  • 归并排序

    #include<bits/stdc++.h>
    #define rep(i,a,b) for(int i=a;i<=b;i++)
    using namespace std;
    const int N=1e5+10;
    int q[N],n,tmp[N];
    void mergeSort(int q[],int l,int r){
        if(l>=r) return;
        int mid=l+r>>1;
        mergeSort(q,l,mid),mergeSort(q,mid+1,r);
        int k=0,i=l,j=mid+1;
        while(i<=mid&&j<=r){
            if(q[i]<=q[j]) tmp[k++]=q[i++];
            else tmp[k++]=q[j++];
        }
        while(i<=mid) tmp[k++]=q[i++];
        while(j<=r) tmp[k++]=q[j++];
        for(int i=l,j=0;i<=r;i++,j++) q[i]=tmp[j];
    }
    int main(){
        cin>>n;
        rep(i,0,n-1) cin>>q[i];
        mergeSort(q,0,n-1);
        rep(i,0,n-1) cout<<q[i]<<' ';
        return 0;
    }
  • 相关阅读:
    CGCDSSQ
    100200H
    斗地主
    借教室
    bzoj 3743
    17B
    能量项链
    589
    16-求连续数组和最大
    15-幸运数组4、7
  • 原文地址:https://www.cnblogs.com/infocodez/p/15004128.html
Copyright © 2011-2022 走看看