社区
数据结构与算法
帖子详情
一个介入搜索和排序之间的问题,不知大家有何想法?
super_chris
2009-09-11 07:50:23
一个无序序列,要求输出里面第K小的数。
大家说说。brain storm~
...全文
89
9
打赏
收藏
一个介入搜索和排序之间的问题,不知大家有何想法?
一个无序序列,要求输出里面第K小的数。 大家说说。brain storm~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
showjim
2009-09-14
打赏
举报
回复
[Quote=引用 8 楼 litaoye 的回复:]
就像7楼所说的,可以通过一些改进让快排稳定一些,不过我当时测过nthElement,一般情况下,O(n)这个常数为1.5-3之间,但某些极端情况下这个达到过26。
其实用堆排也是个不错的方法,尤其是当m远远小于n时,效率可以达到n+m*log(n),可能比nthElement还要好!
引用 6 楼 sbwwkmyd 的回复:
K应该小于等于n/2,找第K小的数等于找第(n-K+1)大的数,维护一颗接近K个叶节点的大小的B树应该比较稳定。但是快排过程的方法,很多时候表现得更好,但是不稳定。
[/Quote]
我认为快排的改进一般都是针对于实际情况,如果改进方式一旦确定,极端情况还是存在的,只是实际命中极端的概率很低而已.
比如我用快排的时候喜欢取中间节点的值做为切割值,不知道你们都有什么好办法.
我觉得快排的快在数据的修改与访问的"直接"数组操作,而其它方法可能需要创建对象的开销(主要可能是内存申请).
绿色夹克衫
2009-09-14
打赏
举报
回复
就像7楼所说的,可以通过一些改进让快排稳定一些,不过我当时测过nthElement,一般情况下,O(n)这个常数为1.5-3之间,但某些极端情况下这个达到过26。
其实用堆排也是个不错的方法,尤其是当m远远小于n时,效率可以达到n+m*log(n),可能比nthElement还要好!
[Quote=引用 6 楼 sbwwkmyd 的回复:]
K应该小于等于n/2,找第K小的数等于找第(n-K+1)大的数,维护一颗接近K个叶节点的大小的B树应该比较稳定。但是快排过程的方法,很多时候表现得更好,但是不稳定。
[/Quote]
showjim
2009-09-12
打赏
举报
回复
K应该小于等于n/2,找第K小的数等于找第(n-K+1)大的数,维护一颗接近K个叶节点的大小的B树应该比较稳定。但是快排过程的方法,很多时候表现得更好,但是不稳定。
super_chris
2009-09-12
打赏
举报
回复
快排可以做些改进让它变得稳定些
绿色夹克衫
2009-09-11
打赏
举报
回复
可以用类似快速排序的方法,普遍认为复杂度是O(n),LZ搜索一下nthElement吧,网上的资料和程序都很多。
linren
2009-09-11
打赏
举报
回复
[Quote=引用 2 楼 super_chris 的回复:]
这好像不是O(n)吧?
[/Quote]
[Quote=引用 3 楼 bffeey 的回复:]
插入操作不是 O(1)
nlnk
[/Quote]
恩
的确不是O(n)……
又弄错了
……
bffeey
2009-09-11
打赏
举报
回复
[Quote=引用 1 楼 linren 的回复:]
时间复杂度为O(n)
维护一个长度为k的数组……
遍历原数组
有些像是插入排序的把元素插入到k数组中……
遍历完后
k数组的第k个元素就是原数组第k小的数……
[/Quote]
插入操作不是 O(1)
nlnk
super_chris
2009-09-11
打赏
举报
回复
[Quote=引用 1 楼 linren 的回复:]
时间复杂度为O(n)
维护一个长度为k的数组……
遍历原数组
有些像是插入排序的把元素插入到k数组中……
遍历完后
k数组的第k个元素就是原数组第k小的数……
[/Quote]这好像不是O(n)吧?
linren
2009-09-11
打赏
举报
回复
时间复杂度为O(n)
维护一个长度为k的数组……
遍历原数组
有些像是插入排序的把元素插入到k数组中……
遍历完后
k数组的第k个元素就是原数组第k小的数……
项目总延期?需求乱插队?程序员如何做好项目管理
日常临时
问题
打乱排期?怎么让大家对需求的理解一致?如何既保证开发效率又保证质量?项目管理是「把事情做对」的重要能力之一。知识型工作者包括程序员,在工作中都
不知
不觉中扮演着「非职业项目经理」的角色。具备...
2万字长文,如何成为
一个
“懂”AI 的产品经理?
而是通过传统的
搜索
引擎(向量数据库、关键词匹配)来完成的,这和 AutoGPT 中几乎所有关键节点都是用 GPT 4 完成是有天壤之别的,这意味着大家意识到
一个
问题
,在一些对上下文窗口有要求的,输出精确
排序
的场景,...
如何成为
一个
“懂”AI 的产品经理?大模型入门到精通,收藏这篇就够了
而是通过传统的
搜索
引擎(向量数据库、关键词匹配)来完成的,这和 AutoGPT 中几乎所有关键节点都是用 GPT 4 完成是有天壤之别的,这意味着大家意识到
一个
问题
,在一些对上下文窗口有要求的,输出精确
排序
的场景,...
ChatGPT与认知科学:人机协同的未来图景
你是否也曾有过这样的瞬间?在与ChatGPT或其他大型语言模型对话时,屏幕那端浮现的文字让你感到一丝真实的“智能”火花。...机器的“思考”和我们的
有何
不同?我们又该如何与这些日益聪明的“伙伴”共处?
进阶-宏观.总体(三)公共物品、市场失灵,政府失灵
因此,在政府有限的预算下,每个人对上述各种需求的
排序
也会不同。或许有人认为与自己生活周遭有关的事物,如路灯、消防队等,应特别优先;但有些人也会认为,国家安全及社会秩序更重要,因此国防与警察开支特别重要...
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章