zoukankan      html  css  js  c++  java
  • 逆序对

    定义:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。

    解决:利用归并排序

    时间复杂度O(nlogn)

    void qiu(int l,int r)
    {
        if(l>=r) return;
        int mid=(l+r)/2;
        qiu(l,mid);
        qiu(mid+1,r);
        int ll=l,rr=mid+1,k=1;
        while(ll<=mid&&rr<=r)
        {
            if(a[ll]>a[rr])
            {
                b[k]=a[rr];
                rr++;
                k++;
                ans+=mid-ll+1;
            }
            else
            {
                b[k]=a[ll];
                ll++;
                k++;
            }
        }
        while(ll<=mid)
        {
            b[k]=a[ll];
            ll++;
            k++;
        }
        while(rr<=r)
        {
            b[k]=a[rr];
            rr++;
            k++;
        }
        for(int i=l,j=1;i<=r;i++,j++)    a[i]=b[j];
    }
  • 相关阅读:
    密码学基础(三)
    密码学基础(二)
    密码学基础(一)
    Lambda代数
    恢复系统
    11.22面试例题
    js中级复习
    11.12
    11.13
    定时器
  • 原文地址:https://www.cnblogs.com/QAQq/p/10300615.html
Copyright © 2011-2022 走看看