快速选择 randomized select
来源:互联网 发布:windows私有云 编辑:程序博客网 时间:2024/04/26 20:10
void swamp(int *a,int *b){int tmp;tmp = *a;*a = *b;*b = tmp;}int randselect(int a[],int begin,int end,int x){int k,j,i,n;n = end - begin +1;if(n <= 1) return a[begin];k =begin + rand()%n;//注意是begin+,因为数组不一定是从零开始用的 swamp(&a[k],&a[begin]);k = a[begin];i = begin;j = begin + 1;while(j<=end){if(a[j]<k){i++;swamp(&a[i],&a[j]);}j++;}if(a[i]> k) i--;//注意主元是和小于主元交换 if(i-begin == x) return a[begin];else {swamp(&a[begin],&a[i]);if(i-begin>x) k = randselect(a,begin,i,x);//考虑i=0的情况,所以不用i-1 else k = randselect(a,i+1,end,x-i-1);}return k;}int randsortdrive(int a[],int n,int x){return randsort(a,0,n-1,x-1);}
0 0
- 快速选择 randomized select
- 读书笔记:"算法导论"之RANDOMIZED-SELECT(快速选择算法)
- 读书笔记:"算法导论"之RANDOMIZED-SELECT(快速选择算法)
- 快速选择select算法
- 快速选择SELECT算法实现
- 9.2-3 Iterative version of Randomized-Select
- 随机选择算法---Randomized Selection Algorithm
- TOP K 和快速选择SELECT
- 快速选择SELECT算法的实现
- 寻找最小的k个数(Randomized-Select方法)
- The Program of Algorithms ------- Diveide and Conquer ---- Randomized-Select
- java查找算法(四)--随机查找(Randomized-Select)
- Randomized Algorithm 随机算法 和 随机快速排序例子
- 快速选择SELECT算法的深入分析与实现
- 【select】选择标签select
- 快速选择(quick select) + 线性时间选择(linear-time select) - 求出n个数中第k大的数
- 快速选择(quick select) + 线性时间选择(linear-time select) - 求出n个数中第k大的数
- 快速排序与快速选择算法(quick sort and quick select algorithm)
- 张亚勤“转会”百度的寓意
- iPhone6分辨率与适配
- 算法--插入排序
- github最新注册方法
- delphi中如何让焦点一直在listbox的最后一行
- 快速选择 randomized select
- 算法--快速排序
- CodeForces-82A-Double Cola
- iOS开发申请证书和应用上传步骤详细文档说明
- Qt5官方demo解析集32——Qt Quick Examples - Threading
- 算法--最大相同子串匹配
- nsbundle
- nyoj448寻找最大数
- Erlang Robot