利用快速排序求解k-th小数
来源:互联网 发布:java微信公众号开发pdf 编辑:程序博客网 时间:2024/06/13 19:57
如题,直接给代码了。
#include<iostream>#include<time.h>using namespace std;int num[100005];int K;void exch(int &a,int &b){int temp;temp=a;a=b;b=temp;}int q_sort(int s,int e){srand((unsigned)time(NULL));//产生随机数种子int index=(rand()%(e-s+1))+s;//[s,e]exch(num[index],num[e]);int i;int j=s;//j记录分界线for(i=s;i<e;i++){if(num[i]<=num[e])//{exch(num[i],num[j]);j++;}}exch(num[j],num[e]);if(j-s==K-1)return num[j];else if(j-s>K-1){q_sort(s,j-1);}else{K=K-(j-s+1);//The key pointq_sort(j+1,e);}}int main(){int n;int i;while(cin>>n&& n>0){for(i=0;i<n;i++)cin>>num[i];cin>>K;if(K<=0 || K>n)return -1;cout<<q_sort(0,n-1)<<endl;}return 0;}
0 0
- 利用快速排序求解k-th小数
- 快速排序 + 前k小数
- 算法导论标准版快速排序和线性时间求解数组第K小数
- 第K小数-快速排序分割函数变体
- WHU-Problem 1152 - Feli 的糖果 寻找第K小数(计数排序,与快速排序)
- 快速排序(快排)的一些细节和k-th问题
- 利用快速排序找到第k大的数字
- 利用快速排序思想求数组第k大元素
- 分治法之-快速排序分割函数变体-第K小数
- #1133 : 二分·二分查找之k小数 ( 快速排序, 分治 OR nth_element() 函数)
- [POJ2104] K-th Number(区间K小数,主席树模板)
- 利用完全二叉树快速求解LCA
- K小数
- 寻找数组中最小的k个数 "利用快速排序的思想"
- 利用快速排序的思想寻找乱序数组第k大数
- 利用快速排序思想找出数组中第K大的数
- 快速排序(K&R)
- [agc008d]K-th K
- Datamatrix二维码开源解码库libdmtx
- USACO1.2.2 - transform
- 正则表达式的贪婪与非贪婪
- 数组作数据成员(拓展2)
- 一身黑色超短裙亮相的全智贤空降上海代言
- 利用快速排序求解k-th小数
- hdu2097
- oc中将CGRect、CGSize、CGPoint等结构体转换为字符串
- 代码说明生成工具doxygen的使用
- 关于hmtl5的Views的一些知识
- 51单片机中断学习
- cocos2dx:数据存储-UserDefault
- [FreeMarker 2.3.20] Part I 关于模版设计的介绍 ~值和类型~ 类型
- Spring入门