poj 求逆序对数
来源:互联网 发布:制作h5的软件 编辑:程序博客网 时间:2024/05/18 21:41
核心思想当然是在归并排序的过程中完成逆序对数的计算咯……很好懂吧
看看代码就知道具体过程了嗯:
#include <cstdio>#include <cstring>#define MAXSIZE 20010int A[MAXSIZE]; int N;int cnt;void merge_sort(int front,int rear) {if (rear - front <= 1) return;int mid = (front + rear) / 2;merge_sort(front,mid);merge_sort(mid,rear);int *tmp = new int[rear - front]; int ptr = 0;int i = front; int j = mid;while (i < mid && j < rear) {if (A[i] <= A[j])tmp[ptr++] = A[i++];else {tmp[ptr++] = A[j++];cnt += mid - i;// 当A[i] > A[j]时,i以及后面的所有元素均与A[j]构成逆序对}}while (i < mid) tmp[ptr++] = A[i++];while (j < rear) tmp[ptr++] = A[j++];memcpy(A + front,tmp,ptr * sizeof(int));delete []tmp;}int main() {while (scanf("%d",&N) && N) {cnt = 0;memset(A,0,sizeof(A));for (int i = 0; i < N; i++) scanf("%d",&A[i]);merge_sort(0,N);printf("%d\n",cnt);}return 0;}
- poj 求逆序对数
- POJ 1007(求逆序对数)
- POJ 2299 归并排序 求逆序对数
- 求逆序对数
- 求逆序对数
- 求数组逆序对数
- 10.求逆序对数
- 求逆序对数
- 1:求逆序对数
- 归并求逆序对数
- openjudge 求逆序对数
- 归并求逆序对数
- poj1804求逆序对数
- 分治 求逆序对数
- 求逆序对数
- 求逆序对数
- 求逆序对数
- POJ 2299 Ultra-QuickSort (求序列的逆序对数)
- 常见面试题
- 【博客搬家】本博客已全面停止更新,新博客地址 plusplus7.com
- Pokergameteacher-游戏
- 第一个MFC程序编译有感
- C语言把内存的文件保存到硬盘时如何把文件名由用户通过屏幕自己设置,并且保存到指定的路径
- poj 求逆序对数
- bzoj3315: [Usaco2013 Nov]Pogo-Cow
- 隐式类型转换
- ftp的内网问题,通过路由器映射非21端口不成功的解决方法
- ccnu 十一月半月赛 F题 会攻击的点 - 离散化 + 区间求和
- 函数指针和指针函数的区别
- 程序员三境界
- java常用设计模式
- hdu 4758 Walk Through Squares(自动机+DP)