寻找无序数组中的第K大数
来源:互联网 发布:甘肃广电网络营业厅 编辑:程序博客网 时间:2024/05/22 06:50
利用快速排序的思想,其中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开始,
0 0
- 寻找无序数组中的第K大数
- 寻找无序数组中的第K大数
- 寻找无序数组中的第K大数
- 寻找无序数组中的第K大数和前K大数
- 寻找数组中第K大数
- 寻找单个无序数组中第K小的数字
- 寻找无序数组中第k大的数
- 寻找无序数组的第K项(分治)
- 整数无序数组求第K大数(暴力|快排)
- 寻找第k大数
- 寻找数组第二大数和第K大数
- 寻找数组中第K大数---使用堆
- 【算法】寻找数组第K大数算法总结
- 寻找数组中的第k个数
- 寻找数组中的第k个数(序)
- 寻找无序数组中第k大的数——快排思想
- 寻找无序数组中的全部降序对
- 寻找数组中的第二大数
- Java-----14、多线程
- [leetCode] Combination Sum II
- 设计一个不能被继承的类
- 黑马程序员_Java(对象数组,集合Collection,集合list)
- C-kermit的安装及配置
- 寻找无序数组中的第K大数
- 打开ALOGV(#define LOG_NDEBUG 0) at the top of source file
- Java算法小结3
- Java-----15、网络编程
- 设置剪贴板内容
- Java-----16、类加载和反射
- 为什么构造函数不能为虚函数
- HAL code debug
- 仿新浪微博IOS客户端(v5.2.8)——下拉菜单栏的实现