寻找最大的K个数
来源:互联网 发布:公司职位划分 知乎 编辑:程序博客网 时间:2024/06/05 12:28
运用快速排序的思想解决问题
#include<stdio.h>#include<stdlib.h>#include<time.h>#define SWAP(X,Y) {int temp;temp=X;X=Y;Y=temp;}//快速排序的划分函数int partition(int a[],int l,int r){ int i,j,x; srand((unsigned)time(NULL));//初始化随机数 i=l+rand()%(r-l+1); SWAP(a[i],a[l]); i=l; j = r+1; x = a[l]; while (1) { while(a[++i] > x); while(a[--j] < x); if(i >= j) break; SWAP(a[i],a[j]); } a[l] = a[j]; a[j] = x; return j;}//线性寻找第k大的数int select_K(int a[],int l,int r,int k){ int i,j; if (l == r) //递归结束 return a[l]; i =partition(a,l,r);//划分 j = i-l+1; if(k == j) //递归结束,找到第K大的数 return a[i]; if(k < j) { return select_K(a,l,i-1,k);//递归调用,在前面部分查找第K大的数 } else return select_K(a,i+1,r,k-j);//递归调用,在后面部分查找第K大的数}int main(){ int a[]={2,1,10,8,3,4,6,6,7,9}; printf("%d ",select_K(a,0,9,8)); return 0;}
0 0
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的k个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的k个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的K个数
- 寻找最大的k个数
- HTML5基础
- iOS中的事件传递
- jquery ajax和struts动态查询数据库
- 二叉树中和为某一路径的值
- Codeforces 486 C Palindrome Transformation
- 寻找最大的K个数
- windows下安装科学计算模块 numpy pandas等
- iOS中生成私有目录NSSearchPathForDirectoriesInDomains
- 【坑坑坑】数据结构 Contest
- 关于移动WebApp 的 meta 标签
- 《推荐系统实战》——基于物品的协同过滤实现
- SWT、Swing 或 AWT:哪个更适合您?
- 动态规划专题小结:最长上升子序列(LIS)问题
- linux目录处理命令