千家信息网

如何实现逆序对的数量归并

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,本篇内容介绍了"如何实现逆序对的数量归并"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#includ
千家信息网最后更新 2024年11月19日如何实现逆序对的数量归并

本篇内容介绍了"如何实现逆序对的数量归并"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

#include#include#include#includeusing namespace std;const int N=100010;typedef long long LL;int n;int q[N],t[N];LL res=0;void merge_sort(int q[],int l,int r){    if(l>=r) return;    int m=(l+r)>>1;    merge_sort(q,l,m);    merge_sort(q,m+1,r);    //开始归并    int i=l,j=m+1;    int k=0;    while(i<=m && j<=r){        if(q[i]<=q[j]) t[k++]=q[i++];        else{            t[k++]=q[j++];            res=res+m-i+1;        }    }    //扫尾    while(i<=m) t[k++]=q[i++];    while(j<=r) t[k++]=q[j++];    //搞回去    for(int i=l,j=0;i<=r;i++,j++) q[i]=t[j];}int main(){    cin>>n;    for(int i=0;i>q[i];    merge_sort(q,0,n-1);    cout<

"如何实现逆序对的数量归并"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0