C++ topK算法 – 基于快速选择实现

算法功能描述:
返回数组nums中第K小的元素。

算法工作机制描述:
选择数组nums最左边的数数字作为锚点:大于nums[l]的元素移到nums[l]右边,小于nums[l]的元素移到nums[l]左边。


int getTopK(vector<int>& nums, int l, int r, int K) {int i = l, j = r;while (i < j) {while (i < j && nums[j] >= nums[l]) --j;  while (i < j && nums[i] <= nums[l]) ++i;swap(nums[i], nums[j]); }swap(nums[i], nums[l]);if (i == K) return nums[K];else if (i < K) return getMid(nums, i + 1, r, K);else return getMid(nums, l, i - 1, K);}

C++ topK算法模板相关推荐

  1. 算法模板总结(自用)

    算法模板总结 滑动窗口 双指针算法 数组相关 合并两个有序数组 左右指针技巧 快慢指针技巧 字符串相关 左右指针 反转字符串问题 快慢指针 替换空格字符问题 链表相关 快慢双指针 删除链表的倒数第N个 ...

  2. GitHub超4.4k星:程序员求职,一个算法模板就够了

    来源:新智元 本文约1800字,建议阅读5分钟 本文为你介绍程序员求职中科学的.高效的刷题方式. [ 导读 ] 近日,GitHub上一个名为"算法模板"的项目引发热议,获得了超4. ...

  3. hdu 2255 奔小康赚大钱--KM算法模板

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255 题意:有N个人跟N个房子,每个人跟房子都有一定的距离,现在要让这N个人全部回到N个房子里面去,要 ...

  4. CSP认证201509-4 高速公路[C++题解]:强连通分量、tarjan算法模板题

    题目分析 来源:acwing 分析: 所求即为强连通分量的个数,然后计算每个强连通分量中点的个数,相加即可. 所谓强连通分量,它是一个子图,其中任意两点可以相互到达,并且再加一个点,就不能满足任意两点 ...

  5. 最大流ISAP算法模板

    这两天学习了最大流,下面是ISAP算法模板: const int inf = 0x3fffffff; template <int N, int M> struct Isap {int to ...

  6. 九十五、二叉树的递归和非递归的遍历算法模板

    @Author:Runsen 刷Leetcode,需要知道一定的算法模板,本次先总结下二叉树的递归和非递归的遍历算法模板. 二叉树的四种遍历方式,前中后加上层序遍历.对于二叉树的前中后层序遍历,每种遍 ...

  7. PHP堆实现TopK算法实例,top-k 算法浅析

    简介 top-k算法,其实就是寻找最大的k个数(具体详见<编程之美>第2.5节"寻找最大的k个数").比如一个数组:1,2,5,9,4,3,7 需要寻找最大的2个数,那 ...

  8. Python 算法模板库,Pythonista 找工作利器

    来源:Github-dashidhy https://github.com/dashidhy/algorithm-pattern-python [导语]程序员找工作,刷算法题是必不可少的一步,这里给广 ...

  9. 1470: 区间求最值(RMQ问题,ST算法模板)

    1470: 区间求最值 Time Limit: 1 Sec Memory Limit: 128 MB [Submit][Status][Web Board] Description 给定一个长度为N ...

最新文章

  1. nullptr和NULL
  2. 用bert来训练quoras question pairs的代码仓
  3. 神经网络结构优化:这篇论文让你无惧梯度消失或爆炸,轻松训练万层神经网络...
  4. 在linux下实现拓扑排序,数据结构——有向图(拓扑排序算法)
  5. NFS精简版配置方法
  6. iphone导出照片到电脑_iPhone里的照片如何快速导入电脑
  7. 发光的二次元克拉克拉 满足年轻用户个性化、碎片化的文娱需求
  8. python合并多个txt文件_python如何合并多个txt文件删除所有重复行并生成新文件
  9. 使用rsync+inotify+apache做分布式图片服务器的部署方法
  10. AOJ0118 Property Distribution【DFS】
  11. 2021扬州市高考成绩查询,2021高考成绩查询系统登录官网入口
  12. 实验、配置Eigrp 验证,汇总
  13. CSR8615蓝牙芯片功能调试入门笔记------ 下
  14. 深圳腾讯地图地铁站经纬度
  15. 住房贷款等额本息(等额本金)还款计划计算
  16. 给自定义Dialog加入保留对话框值的功能
  17. c语言第一章复习思维导图
  18. 程序员做外包有前途吗?谈谈外包的利与弊,字字扎心
  19. GNS3的RIP协议的动态路由配置
  20. 数据结构:双栈共享的初始化、入栈、出栈

热门文章

  1. linux升级到指定内核版本,如何在CentOS/RHEL上安装或升级新的内核版本
  2. 王者荣耀服务器维护公告5月8号,王者荣耀5月8日更新公告 收集初夏特饮兑换特效[多图]...
  3. GOF-Java基础知识和J2EE框架知识之间一座隐性的桥
  4. 计算机毕业设计ssm企业绩效考核系统x73jw系统+程序+源码+lw+远程部署
  5. [ 2019-12-15第十八次CCF计算机软件能力认证]总结 Apare_xzc
  6. 第十三届蓝桥杯省赛C++C组-纸张尺寸
  7. msm8916 MDP(mobile display processor) 简介
  8. jquery兄弟标签_jquery如何获取兄弟节点?
  9. Android数据库加解密逆向分析(三)——微信数据库密码破解
  10. PluginOK中间件产品介绍