归并排序&求逆序对
2016-08-16 15:07
197 查看
void msort(int l,int r) { if(l==r)return; else { int mid=(l+r)/2; int a=l,b=mid+1,c=1; msort(l,mid); msort(mid+1,r); while(a<=mid&&b<=r) { if(arr[a]>arr[b]) { t[c]=arr[b]; num+=mid-a+1;//求逆序对的核心程序 c++; b++; } else{ t[c]=arr[a]; c++; a++;} } while(a<=mid) { t[c]=arr[a]; a++; c++; } while(b<=r) {t[c]=arr[b]; b++; c++;} for(int i=1;i<=r-l+1;i++) arr[l-1+i]=t[i]; } }
相关文章推荐
- 归并排序&&数组中逆序对问题
- 归并排序&求逆序对数
- POJ 2299 Ultra-QuickSort(归并排序·树状数组·逆序对)
- nyoj 117 求逆序数 【归并排序&&逆序数反转次数】
- 排序 归并排序&逆序对
- 归并排序&归并排序求逆序对
- 逆序打印数字
- 字符串逆序之---句子逆序
- POJ 2299 树状数组求逆序对
- 第十二周 oj训练 逆序输出整数
- 对一个字符串逆序
- 第十四周OJ项目A逆序输出数组
- 编程实现对输入的字符串进行逆序
- 逆序输出数组
- [编程题]句子逆序
- 实验9 问题 A: 编写函数:递归求逆序 (Append Code)
- 第十五周-字符串逆序输出
- 归并排序-数组中的逆序对
- 字符串反转 和 字符逆序
- 1栈和队列--仅用递归函数和栈操作逆序一个栈