第k小 如果有重复数据呢

第k小 如果有重复数据呢

如果有一样的元素 k-1 可能取的值 对不上阿

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

我没有特别理解你的意思,什么叫“对不上”?


在这里,我介绍的算法,等价于求解:把原数组进行排序后,第 k - 1 索引位置的元素的是谁。


如果进行排序再取值,时间是 O(nlogn) 的,使用这个 selectK 算法,是 O(n) 的。


继续加油!:)

  • 旋涡鸣人_ 提问者 #1

    1, 1, 2, 2, 3, 3
    0  1  2 3  4 5
    第k小的元素
    k = 1 1 - 1 = 0 value: 1
    k =  2 2 - 1 = 1 value: 1  表示K等于2 的时候,结果还是1。第二小的元素不应该是 2 吗?

    2021-03-24 12:07:01
  • liuyubobobo 回复 提问者 旋涡鸣人_ #2

    你对第 k 小的定义和这个算法对第 k 小的定义不同。这个算法求解:把原数组进行排序后,第 k - 1 索引位置的元素的是谁。按照你的定义,需要先对数组去重。

    2021-03-24 13:42:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2583    人
  • 解答问题       1082    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师