小白成长日记(10)--使用快速排序寻找乱序数组中的第k大的值(c++)
来源:互联网 发布:国寿资管 知乎 编辑:程序博客网 时间:2024/05/18 01:58
不多BB,直接上代码:
#include <iostream> using namespace std;int getNthMaxByQuickSort(int array[], int low, int high, int k) { if (low>high) return -1; int left = low; int right = high; int key = array[left]; while (left<right) { while (right>left&&array[right] <= key) --right; array[left] = array[right]; while (left<right&&array[left] >= key) ++left; array[right] = array[left]; } array[left] = key; if (left + 1 == k) return array[left]; if (left + 1>k) getNthMaxByQuickSort(array, low, left - 1, k); else getNthMaxByQuickSort(array, left + 1, high, k);}int main() { int array[] = { 1,1,5,9,2,3,6,8,7,4,0 }; cout << getNthMaxByQuickSort(array, 0, 10, 1) << endl; cin.get();}
阅读全文
0 0
- 小白成长日记(10)--使用快速排序寻找乱序数组中的第k大的值(c++)
- 利用快速排序的思想寻找乱序数组第k大数
- 给定一个乱序数组,找到其中第K大的值,要求时间复杂度最低
- 快速排序之寻找第k小的值
- 求乱序数组中第K大的值
- 寻找第k小的数字,包括快速排序
- 在N个乱序数字中查找第k大的数字
- 在N个乱序数字中查找第k大的数字
- 查找算法(3)、经典算法(8):从N个乱序数据中找出第K小的数
- 寻找第k大或第k小的算法 -- 内存足够(C++实现)
- 寻找第k大或第k小的算法 -- 内存足够(C++实现)
- 用快速排序法寻找第k大元素
- WHU-Problem 1152 - Feli 的糖果 寻找第K小数(计数排序,与快速排序)
- 基于快速排序寻找第k小元素
- 面试算法——寻找第K大的数(快速排序的应用)
- 寻找给定区间内的第k小(大)的元…
- 寻找给定区间内的第k小(大)的元素
- 快排算法及利用快排思想寻找第k大(小)的数
- SSH免密登录配置
- 戚风蛋糕
- OpenGL--材质
- OpenGL--绘制和混合
- OpenGL--变换,矩阵,更多对象
- 小白成长日记(10)--使用快速排序寻找乱序数组中的第k大的值(c++)
- 关于servlet抽取,以及getMethod方法的参数
- OpenGL--纹理2
- 移动测试工程师必须知道的10个开源框架
- OpenGL--着色器2
- map()
- PAT (Basic Level) Practise (中文)1041. 考试座位号(15)
- OpenGL--高级纹理知识
- CCF-训练50题-NO.11-身份证校验