用快排思路解决逆序对问题
来源:互联网 发布:凡科怎么绑定域名 编辑:程序博客网 时间:2024/05/24 05:48
#include<iostream>#include<fstream>#define rep(i, n) for(i=0;i<n;i++)#define repi(i,l,n) for(i=l;i<=r;i++)using namespace std;void quicksort(int l, int r);int a[100];int b[100];int hit;int main(){int i, k;cin >> k;rep(i, k) cin >> a[i];quicksort(0, k - 1);rep(i, k) cout << a[i];cout << hit << endl;getchar(); getchar(); //crash}void quicksort(int l, int r){if (l < r){int round = l + rand() % (r - l + 1);int set = a[round];int i, al = 0, br = 0, il = l, ir, count = 0;repi(i, l, r){if (a[i]<set) count++;}b[count + l] = set;ir = count + 1+l;repi(i, l, r){if (a[i] > set){b[ir++] = a[i];al++;if (i < round)hit++;}else if (a[i] < set){b[il++] = a[i];br++;if (i>round)hit++;hit += al;}}repi(i, l, r){a[i] = b[i];}quicksort(l, count);quicksort(count + 1, r);}}
0 0
- 用快排思路解决逆序对问题
- 逆序对问题的两种解决策略
- 应用归并排序解决——求逆序对问题
- 牛客网 Wannafly挑战赛6 逆序对(思路)
- 逆序对问题
- 逆序对问题
- 逆序对问题
- 逆序对问题
- 逆序对问题
- 算法导论 逆序对问题
- 算法导论 逆序对问题
- 算法导论 逆序对问题
- 逆序对问题 (O(nlgn))
- 逆序对问题(归并)
- 数组中的逆序对(归并排序思路)
- 用divide&conquer思想解决求逆序数对的问题
- n根号n解决在线无修区间逆序对问题
- 归并排序(逆序对的解决)
- 1002. A+B for Polynomials (25)
- 【笔试】53、圆圈中最后剩下的数字(约瑟夫环)
- 关于ios8中CMStepCounter过时的问题
- 纪念碑
- jQuery源码分析之$.map函数
- 用快排思路解决逆序对问题
- 基于TCP网络通信的简易多线程GUI聊天室
- ubuntu Linux离线安装软件包
- 斐波那契的递归函数
- JSP要点总结
- IOS开发UI进阶之UITableView三
- 最高分是多少(线段树) 华为2016校园招聘
- java并发之ConcurrentHashMap
- 找出有环链表中环的起点