zoukankan      html  css  js  c++  java
  • 【模板】归并排序模板

    #include<bits/stdc++.h>
    #define N 1000
    using namespace std;
    int a[N];
    int tmp[N];
    void mergesort(int l,int r)
    {
        if(l==r) return;
        int mid=l+r>>1;
        mergesort(l,mid);
        mergesort(mid+1,r);
        int i=l,j=mid+1,tot=l-1;
        while(i<=mid&&j<=r)
        {
            if(a[i]<=a[j])
                tmp[++tot]=a[i++];
            else
                tmp[++tot]=a[j++];
        }
        while(i<=mid) tmp[++tot]=a[i++];
        while(j<=r) tmp[++tot]=a[j++];
        for(int i=l;i<=r;i++)
            a[i]=tmp[i];
    }
    int main()
    {
        int n;cin>>n;
        for(int i=1;i<=n;i++)cin>>a[i];
        mergesort(1,n);
        for(int i=1;i<=n;i++)cout<<a[i]<<" ";
        return 0;
    }

    或者:

    int a[N];
    int tmp[N];
    void margesort(int ;l,int r){
        if(l==r)return;
        int mid=l+r>>1;
        mergesort(l,mid);
        mergrsort(mid,r);
        int i=1,j=mid+1;
        while(i<=mid||j<=r){
            if(j==r+1||a[i]<=a[j])
                tmp[++tot]=a[i++];
            else
                tmp[++tot]=a[j++];
        }
        for(int i=1;i<=r;i++)
            a[i]=tmp[i];
    }
    int main(){
        mergesort(1,n);
    }
  • 相关阅读:
    vs13的内存占用 关闭之
    Java基础 -5
    Java基础 -4.6
    Java基础 -4.5
    Java基础 -4.4
    Java基础 -4.3
    Java基础 -4.2
    Java基础 -4
    Java基础 -3.5
    Java基础 -3.4
  • 原文地址:https://www.cnblogs.com/akioi/p/12204366.html
Copyright © 2011-2022 走看看