CLRS2.4__逆序对
#include<iostream> using namespace std; int main( int argc, char * argv[]) { int Merge_Count( int *, int , int ); int merge( int *, int , int , int ); int A[]={2,3,8,6,1}; cout<<Merge_Count(A,0,4)<<endl;; system ( "pause" ); return 0; } int Merge( int * A, int p, int q, int r) { int n1=q-p; int n2=r-q; int i,j; int *L= new int [n1+1](); int * R= new int [n2+1](); for (i=0;i<n1;i++) L[i]=A[p+i]; for (i=0;i<n2;i++) R[i]=A[q+i+1]; L[n1]=INT_MAX; R[n2]=INT_MAX; i=0;j=0; int inversion=0; bool counted= false ; for ( int k=p;k<=r;k++) { if (counted== false && L[i]>R[j]) { inversion+=n1-i+1; counted= true ; } if (L[i]<R[j]) i++; else { j++; counted= false ; } } delete []L; delete []R; return inversion; } int Merge_Count( int * A, int p, int r) { int count=0; if (p<r) { int q=(p+r)/2; int l1=Merge_Count(A,p,q); int l2=Merge_Count(A,q+1,r); count=l1+l2+Merge(A,p,q,r); } return count; } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具