c++ STL求中位数,要求时间复杂度为O(n)

shiter
人工智能领域优质创作者
博客专家认证
2013-12-23 10:54:39
c++ STL求中位数,要求时间复杂度为O(n)?
怎么整,我看了几个的,感觉,要是求中位数的 中位数那种算法需要排序啊,还怎么保障O(n)?

求高手代码!!!!!
...全文
798 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2013-12-24
  • 打赏
  • 举报
回复
nth_element啊。
mujiok2003 2013-12-24
  • 打赏
  • 举报
回复
引用 7 楼 wangyaninglm 的回复:
[quote=引用 5 楼 bruceteen 的回复:] nth_element 也不是 O(n) 的
这些红星忽悠我?[/quote] On average, linear in last - first
vipcxj 2013-12-24
  • 打赏
  • 举报
回复
貌似说是和distance一个复杂度
shiter 2013-12-24
  • 打赏
  • 举报
回复
引用 5 楼 bruceteen 的回复:
nth_element 也不是 O(n) 的
这些红星忽悠我?
AndyStevens 2013-12-24
  • 打赏
  • 举报
回复
使用和快速排序一样的方法,不过只需要求其中一半,得到的时间复杂度在平均情况下是 O(n)
bruceteen 2013-12-24
  • 打赏
  • 举报
回复
nth_element 也不是 O(n) 的
shiter 2013-12-24
  • 打赏
  • 举报
回复
这么假,直接提供了。。。
ri_aje 2013-12-24
  • 打赏
  • 举报
回复
nth_element 就是干这个的。
vipcxj 2013-12-24
  • 打赏
  • 举报
回复
基数排序就是O(n)的,虽然有的情况下它不一定比那些O(nlgn)的快,但时间复杂度也算满足LZ需求了

65,202

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧