Ultra-QuickSort 【归并或树状数组+离散化】
来源:互联网 发布:软件测试需求评审 编辑:程序博客网 时间:2024/05/30 05:40
Ultra-QuickSort 描述 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 输入 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. 输出 For 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. 样例输入 样例输出
总提交: 47 测试通过: 6
9 1 0 5 4 ,
Ultra-QuickSort produces the output
0 1 4 5 9 .
Your task is to determine how many swap operations Ultra-QuickSort needs to perform in order to sort a given input sequence. 59105431230
60
这个题目归并可以做 我不多说了。。。
还有一种方法就是用binary index tree 就是二进制线索树 大家都叫树状数组,不过不是很标准,不管这些。
题目先要知道转化为求逆序数,逆序数很简单就是4 3 2 1
升序是1 2 3 4 那么就是4前面没有比他大 的数就是0,3前面有个4比他大那么就是1,2前面有3,4都比他大那么逆序数是2,1前面3 全部加起来就是总的逆序数 = 0+1+2+3=6
也就是要交换几次从前面一个个交换下来。
这样可以转化为树状数组去做了,一看数据有999999999那么大数组也开不了,即使开了也太大了 怎么办?
看了下其他作者的方法就是用离散化。反正数据不用管,知道保留数据之间的大小关系就行,何不把大的数据换成小的呢?换了后保留原来数据的相对位置。
然后就可以树状数组了,就是 用向下updata 向上read
两个的代码分别:
全部代码:
- Ultra-QuickSort 【归并或树状数组+离散化】
- POJ 2299 Ultra-QuickSort(树状数组+离散化 或 归并排序求逆序)
- Ultra-QuickSort 学习归并排序(树状数组+离散化)
- poj2299 Ultra-QuickSort(归并排序 || 离散化+树状数组)
- POJ 2299 Ultra QuickSort <树状数组+离散化 / 归并排序>
- Ultra-QuickSort 离散化+树状数组
- 树状数组的离散化 Ultra-QuickSort
- [树状数组][离散化]Ultra-QuickSort
- Ultra-QuickSort (树状数组离散化)
- Ultra-QuickSort(树状数组 + 离散化)
- poj2299 Ultra-QuickSort (树状数组+离散化)
- POJ Ultra-QuickSort (树状数组+离散化)
- POJ2299 Ultra-QuickSort 树状数组+离散化
- poj2299 Ultra-QuickSort 树状数组 + 离散化
- POJ2299-Ultra-QuickSort(树状数组+离散化)
- poj2299 Ultra-QuickSort&&NYOJ117 求逆序数 (树状数组求逆序对数+离散化)+(归并排序)
- POJ 2299 Ultra-QuickSort(归并排序,树状数组,离散化)
- poj 2299 Ultra-QuickSort(归并排序)||(树状数组+离散化)
- 一个程序员的多年珍藏
- Spring Framework 试题
- Scrum在大型游戏团队中的应用
- C#中HashTable的使用
- 浏览器差异日积月累
- Ultra-QuickSort 【归并或树状数组+离散化】
- 异常处理
- ORACLE物化视图-Query Rewrite的一般理解之二
- 网站开通啦!!!
- 帝国CMS 使用感受
- 网络之路
- JVM加载class文件的原理机制
- 筛选EXCEL文件中背景色为绿色的脚本
- cmwap和cmnet管理