HOJ2098//归并排序求逆系数
来源:互联网 发布:大数据搜索引擎 编辑:程序博客网 时间:2024/06/10 08:44
Ultra-QuickSort
Submitted : 519, Accepted : 171
In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted in ascending order. For the input sequence """"
Ultra-QuickSort produces the output
Your task is to determine how many swap operations Ultra-QuickSort needs to perform in order to sort a given input sequence.Input
The input contains several test cases. Every test case begins with a line that contains a single integer n < 500,000 -- the length of the input sequence. Each of the the following n lines contains a single integer 0 ≤ a[i] ≤ 999,999,999, the i-th input sequence element. Input is terminated by a sequence of length n = 0. This sequence must not be processed.
OutputFor every input sequence, your program prints a single line containing an integer number op, the minimum number of swap operations necessary to sort the given input sequence.
Sample Input59105431230Sample Output
60
#include<iostream>#include<stdio.h>#define MAX 500000using namespace std;int a[MAX +1],t[MAX +1];long long nxs;void Merge(int left, int mid, int right)//这个是照数据结构上面的模版写的,感觉写的很清晰,以后就用它做模版啦{ int i = left, j = mid + 1,k=0; while(i <= mid && j <= right) { if (a[i] > a[j]) { t[k++] = a[j++]; nxs += mid - i +1;// a[i]后面的数字对于a[j]都是逆序的 } else { t[k++] = a[i++]; } } while(i <= mid) t[k++] = a[i++]; while(j <= right) t[k++] = a[j++]; for (i = 0; i < k; i++)//这一步是必须的,归并完成后将结果复制到原输入数组 { a[left+i]=t[i]; }}void MergeSort(int left, int right){ int mid; if (left < right) { mid = (left + right) / 2; MergeSort(left, mid); MergeSort(mid + 1, right); Merge(left, mid, right); }}int main(){ int i,n; while(scanf("%d", &n)&&n) { nxs=0; for(i = 0; i < n; i++) { scanf("%d", &a[i]); } MergeSort(0, n - 1); printf("%lld\n", nxs); } return 0;}主要就是利用归并排序求逆系数,以前没有学过排序,思路都是别人的,当作学习吧,嘻嘻!
- HOJ2098//归并排序求逆系数
- 归并排序求逆对数
- 归并排序求逆序
- 归并排序求逆序
- 归并排序/归并排序求逆序数
- 归并排序&归并排序求逆序对
- 归并排序,求逆序数
- 归并排序求逆序对
- 归并排序求逆序对数)
- 归并排序求逆序数
- 归并排序求逆序数
- 归并排序&求逆序对数
- 归并排序求逆序对
- 归并排序求逆序数
- 归并排序求逆序对数
- 归并排序求逆序数
- 归并排序求逆序数
- 归并排序求逆序对~~~
- 推荐网页设计师和开发人员使用的10个云应用
- 求全排列
- SD卡驱动调试经验
- 分页查询的排序问题
- 组合模式
- HOJ2098//归并排序求逆系数
- ExtJs4.0 分页
- 在Oracle中进行大小写不敏感的查询
- FIRST_ROWS优化模式语言排序模糊匹配问题
- 美国白宫app源代码激情奉献 iPad & iPhone White House app
- 12 Interesting C Interview Questions and Answers
- 单身快乐(致一个人的情人节)
- hdoj2502
- ME 类的自我引用(SELF-REFERENCE) - 理解