博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
归并排序求逆序对
阅读量:5047 次
发布时间:2019-06-12

本文共 948 字,大约阅读时间需要 3 分钟。

#include
void Merge(int ,int ,int );void mergeSort(int ,int );int ch[20000],temp[20000];int count = 0;void mergeSort(int lo,int hi) { if(lo < hi) { int mid =( lo + hi ) / 2; mergeSort(lo,mid); mergeSort(mid + 1,hi); Merge(lo,mid,hi); }}void Merge(int lo,int mid,int hi) { int i = lo; int j = mid + 1; int x = lo; while(i <= mid&&j <= hi) { if ( ch[i] > ch[j]) { count+= mid - i + 1; temp[x++] = ch[j++]; } else { temp[x++] = ch[i++]; } } while(i <= mid) temp[x++] = ch[i++]; while(j <= hi) temp[x++] = ch[j++]; for(int k = lo; k <= hi ; k++) ch[k] = temp[k];}int main() { int N; scanf("%d",&N); for(int i=0; i < N; i++) { scanf("%d",&ch[i]); } mergeSort(0,N-1); printf("%d\n",count); return 0;}

 

转载于:https://www.cnblogs.com/KasenBob/p/10434521.html

你可能感兴趣的文章
12th week blog
查看>>
dijkstra (模板)
查看>>
python小记(3)
查看>>
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
【ASP.NET开发】菜鸟时期的ADO.NET使用笔记
查看>>
android圆角View实现及不同版本号这间的兼容
查看>>
OA项目设计的能力③
查看>>
Cocos2d-x3.0 文件处理
查看>>
全面整理的C++面试题
查看>>
Activity和Fragment生命周期对比
查看>>
OAuth和OpenID的区别
查看>>
android 分辨率自适应
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>
国外媒体推荐的5款当地Passbook通行证制作工具
查看>>
日常报错
查看>>
list-style-type -- 定义列表样式
查看>>