
找第k小|C语言实现
v){ for(vector ::iterator it = v.begin(); it != v.end(); it++) cout << *it << " ";} int select_kth_smallest(vector q, size_t k){ int bot = 0, top = q.size(); while(bot < top){ int left = bot, right = bot, i; int index = choose_mid(q, bot, top); while(right < top){ if(q[right] < index){ int temp = q[left]; q[left] = q[right]; q[right] = temp; left++; } if(q[right] == index) i = right; right++; } q[i] = q[left]; q[left] = index; if(left+1 < k) bot = left + 1; else if(left+1 > k) top = left; else return index; } return -1;} int choose_mid(vector & q, int left, int right){ vector v; while(left+5 < right){ int mid = selection(vector (&q[left], &q[left+5])); v.push_back(mid); left += 5; } int mid = selection(vector (&q[left], &q[right])); v.push_back(mid); return selection(v);} int selection(vector v){ int size = v.size(); for(int a=1; a 0 && temp
发布日期:2021-05-07 06:45:58
浏览次数:18
分类:精选文章
本文共 1316 字,大约阅读时间需要 4 分钟。
#include#include #include #include #include #include #include using namespace std;int select_kth_smallest(vector q, size_t k);int choose_mid(vector & q, int left, int right);int selection(vector v);void print_vector(vector v);int main(){ srand(time(NULL)); int x; int k = 1; vector v; for(int i = 0;i<10;i++) { x = rand()%100; v.push_back(x); } print_vector(v); k = select_kth_smallest(v,4); cout <
发表评论
最新留言
不错!
[***.144.177.141]2025年03月29日 23时20分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java之封装,继承,多态
2019-03-06
wait()与notify()
2019-03-06
使用js打印时去除页眉页脚
2019-03-06
Spring security OAuth2.0认证授权学习第二天(基础概念-RBAC)
2019-03-06
ORA-00904: "FILED_TYPE": 标识符无效
2019-03-06
Redis系统学习之Redis性能测试工具
2019-03-06
数据仓库系列之维度建模
2019-03-06
Scala教程之:函数式的Scala
2019-03-06
java中DelayQueue的使用
2019-03-06
java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程
2019-03-06
线程stop和Interrupt
2019-03-06
Android中定时执行任务的3种实现方法
2019-03-06
nodejs中npm常用命令
2019-03-06
基于Vue2.0+Vue-router构建一个简单的单页应用
2019-03-06
基于vue2.0实现仿百度前端分页效果(二)
2019-03-06
JS魔法堂:函数重载 之 获取变量的数据类型
2019-03-06
时间序列神器之争:Prophet VS LSTM
2019-03-06
SpringBoot中关于Mybatis使用的三个问题
2019-03-06
MapReduce实验
2019-03-06