归并排序--逆序数对的计算
来源:互联网 发布:知乎 阳台躺椅 书桌 编辑:程序博客网 时间:2024/04/29 16:20
#include<iostream>using namespace std;const int M = 1000;int arr[M];int cnt = 0;void mege(int arr[] ,int l, int m, int r){ int begin1 = l; int begin2 = m + 1; int end1 = m; int end2 = r; int k = 0; int temp[M]; while(begin1 <= end1 && begin2 <= end2) { if(arr[begin1] < arr[begin2]) { temp[k++] = arr[begin1++]; cnt += begin2 - (m + 1); } else { temp[k++] = arr[begin2++]; } } while(begin1 <= end1) { temp[k++] = arr[begin1++]; cnt += end2 - m; } while(begin2 <= end2) { temp[k++] = arr[begin2++]; } for(int i = l;i <= r;i++) arr[i] = temp[i - l];}void Megesort(int arr[], int l, int r){ int m = (l + r) / 2; if(l < r) { Megesort(arr, l , m); Megesort(arr, m + 1, r); mege(arr, l, m, r); }}int main(){ int len; cout << "请输入需要排序的序列的长度:" << endl; cin >> len; cout << "请输入需要排序的序列:" << endl; for(int i = 1;i <= len;i++) { cin >> arr[i]; } Megesort(arr, 1, len); for(int i = 1;i <= len;i++) { cout << arr[i] << " "; } cout << endl; cout << "逆序数的数量为:" << cnt << endl; return 0;}
0 0
- 归并排序--逆序数对的计算
- [笔记]利用归并排序计算逆序数的个数
- 从归并排序到数列的逆序数对
- 归并排序计算逆序对数目
- 使用归并排序计算逆序对个数
- 算法 -- 计算逆序数 , significant逆序数 归并排序
- 归并排序和求逆序数对
- 归并排序(求逆序数对)
- 数据结构 归并排序-逆序数对
- 求逆序数对(归并排序)
- 利用归并排序求逆序数对
- Inversion(HDU_4911) 归并排序+逆序数对
- 利用归并排序求逆序数对
- 计算逆序数:在归并和快排两种排序过程中求得逆序数的方法比较
- 【算法】归并排序(可求逆序数或逆序对)
- 归并排序,逆序数
- 归并排序 逆序数
- 归并排序+逆序数
- 如何烧写自己编译的u-boot
- ZOJ 3826 Hierarchical Notation(2014 牡丹江 D,概率DP)
- STM8建立IAR工程
- 用Python写的一个monkeyrunner小工具(支持手机截图与定时截图,手机屏幕的显示)
- 如鱼饮水,冷暖自知。
- 归并排序--逆序数对的计算
- html+css的简单界面实现
- 2015华为机试题
- cpp-tests Node::Label
- Internet Information Services(IIS,互联网信息服务)与tomcat服务器冲突问题
- Javascript Model模式和闭包学习举例
- 【Java.Web】MVC —— Action的验证器 —— Validator
- html+css关于位置布局
- 水文