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

    复制代码
    #include <iostream>
    #include <cstdio>
    using namespace std;
    
    const int Maxm = 1000 + 2;
    const int Maxn = 0xfffffff;
    int n[Maxm];
    
    int merge (int s , int r, int t)
    {
        if(s == t) return 0;
        merge(s, (s + r) / 2, r);
        merge(r + 1, (r + t + 1) / 2, t);
        
        int a[Maxm], b[Maxm];
        for(int i = s; i <= r; i++)
            a[i] = n[i];
        for(int i = r + 1; i <= t; i++)
            b[i] = n[i];
        a[r + 1] = b[t + 1] = Maxn;
        int j = s, k = r + 1;
        
        for(int i = 1;  i <= t - s + 1;  i++)
            if(a[j] <= b[k]) n[s + i - 1] = a[j++];
            else n[s + i - 1] = b[k++];
        
        return 0;
    }
    
    int main()
    {
        int s = 1, t;
        scanf("%d", &t);
        for(int i = 1; i  <= t; i++)
            scanf("%d", &n[i]);
            
        merge(s, (s+ t) / 2,  t);
        
        for(int i = 1; i <= t; i++)
            printf("%d ", n[i]);
        printf("
    ");
        return 0;
    } //分治思想, 时间复杂度O(nlogn)
    复制代码

    递归的初级应用,可类比到线段树的建树过程,一个比较简略版本的代码不知被我扔哪去了,见到后再补充(((φ(◎ロ◎;)φ)))

  • 相关阅读:
    python中元类(metaclass)的理解
    aiohttp
    async/await
    asyncio
    协程
    Bayesian Non-Exhaustive Classification A case study:online name disambiguation using temporal record streams
    技术网址
    网站
    各种网址
    OpenGL学习网址2
  • 原文地址:https://www.cnblogs.com/QQ-1615160629/p/5852145.html
Copyright © 2011-2022 走看看