寻找无序数组中的第K大数
来源:互联网 发布:cdr软件图片 编辑:程序博客网 时间:2024/05/22 00:31
利用快速排序的思想,其中K从1开始
例如寻找5, 2, 6, 3中的第3大数,排好序后变为2 , 3 , 5 , 6 , 故结果为5,可以利用上述函数cout<< quicksort(x , 0 , 3 , 3)<<endl;
注意数组从0开始,
int quicksort(int * x , int l , int r , int k){ if(l == r && k==1)return x[l]; int i , j ; for(i=l-1 , j=l;j<r;j++) if(x[j]<x[r])std::swap(x[++i] , x[j]); std::swap(x[++i] , x[r]); if(k==(i-l+1))return x[i]; if(k<=(i-l))return quicksort(x , l , i-1 , k); if(k>(i-l+1)) return quicksort(x , i+1 , r , k-(i-l+1) );}
例如寻找5, 2, 6, 3中的第3大数,排好序后变为2 , 3 , 5 , 6 , 故结果为5,可以利用上述函数cout<< quicksort(x , 0 , 3 , 3)<<endl;
注意数组从0开始,
- 寻找无序数组中的第K大数
- 寻找无序数组中的第K大数
- 寻找无序数组中的第K大数
- 寻找无序数组中的第K大数和前K大数
- 寻找数组中第K大数
- 寻找单个无序数组中第K小的数字
- 寻找无序数组中第k大的数
- 寻找无序数组的第K项(分治)
- 整数无序数组求第K大数(暴力|快排)
- 寻找第k大数
- 寻找数组第二大数和第K大数
- 寻找数组中第K大数---使用堆
- 【算法】寻找数组第K大数算法总结
- 寻找数组中的第k个数
- 寻找数组中的第k个数(序)
- 寻找无序数组中第k大的数——快排思想
- 寻找无序数组中的全部降序对
- 寻找数组中的第二大数
- 小量压缩简单算法
- 个个给力2010年十大国产软件新品回顾
- 今年有点打算
- 3D技术及其应用
- Java Compiler 应用实例
- 寻找无序数组中的第K大数
- MIT牛人解说数学体系与数学家石根华的41年传奇
- 会赚钱的人共有的特征,你是吗?
- 2012年个人规划(2012/2/8)
- 无聊中~~看《失恋33天》,单片循环
- IT新兵成长记-(一)
- 打造百折不挠的 setuptools
- Hash 算法及其应用(转)
- volatile Fields(langspec-3.0)