社区
数据结构与算法
帖子详情
一个介入搜索和排序之间的问题,不知大家有何想法?
super_chris
2009-09-11 07:50:23
一个无序序列,要求输出里面第K小的数。
大家说说。brain storm~
...全文
91
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小的数……
项目总延期?需求乱插队?程序员如何做好项目管理
????腾小云导读程序员对工作量评估不准确?日常临时
问题
打乱排期?怎么让大家对需求的理解一致?如何既保证开发效率又保证质量?项目管理是「把事情做对」的重要能力之一。知识型工作者包括程序员,在工作中都
不知
不觉中扮演着「非职业项目经理」的角色。具备项目管理能力,对程序员职业发展、个人生活都有重大价值。本文详细分析程序员如何进行进度管理、质量管理和风险管理。????看目录1为什么开发者需要懂项目管理 1.1...
2万字长文,如何成为
一个
“懂”AI 的产品经理?
RAG 的流程中,是检索+生成,检索的部分并不是由大模型完成的,而是通过传统的
搜索
引擎(向量数据库、关键词匹配)来完成的,这和 AutoGPT 中几乎所有关键节点都是用 GPT 4 完成是有天壤之别的,这意味着大家意识到
一个
问题
,在一些对上下文窗口有要求的,输出精确
排序
的场景,GPT 一点也不好用;现在市面上的文章,尤其是面向非技术的同学的文章,关注概念多过关注落地,这不是
一个
好现象。不同的模态自带的信息含量是不一样的,文字是最抽象的,包含的信息含量最低,而图像是最具象的,包含的信息含量最高。
如何成为
一个
“懂”AI 的产品经理?大模型入门到精通,收藏这篇就够了
RAG 的流程中,是检索+生成,检索的部分并不是由大模型完成的,而是通过传统的
搜索
引擎(向量数据库、关键词匹配)来完成的,这和 AutoGPT 中几乎所有关键节点都是用 GPT 4 完成是有天壤之别的,这意味着大家意识到
一个
问题
,在一些对上下文窗口有要求的,输出精确
排序
的场景,GPT 一点也不好用;现在市面上的文章,尤其是面向非技术的同学的文章,关注概念多过关注落地,这不是
一个
好现象。不同的模态自带的信息含量是不一样的,文字是最抽象的,包含的信息含量最低,而图像是最具象的,包含的信息含量最高。
ChatGPT与认知科学:人机协同的未来图景
你是否也曾有过这样的瞬间?在与ChatGPT或其他大型语言模型对话时,屏幕那端浮现的文字让你感到一丝真实的“智能”火花。或许是
一个
精妙的回答,一段富有创意的文本,甚至是一句看似充满理解的安慰。那一刻,我们仿佛触摸到了科幻小说中描绘的未来。但紧接着,一连串的疑问也可能涌上心头:这真的是“理解”吗?机器的“思考”和我们的
有何
不同?我们又该如何与这些日益聪明的“伙伴”共处?
进阶-宏观.总体(三)公共物品、市场失灵,政府失灵
39.公共物品国防需要吗?警察需要吗?路灯需要吗?马路需要吗?消防队需要吗?对于上述需求,可能多数人都会觉得是必要的,但每个人又可能对上述某些需求有着不同的紧迫程度。因此,在政府有限的预算下,每个人对上述各种需求的
排序
也会不同。或许有人认为与自己生活周遭有关的事物,如路灯、消防队等,应特别优先;但有些人也会认为,国家安全及社会秩序更重要,因此国防与警察开支特别重要。这些不同的
想法
都有其道理,不能说谁的意见一定是对的。在民主国家里,这些
问题
都要通过民主程序,决定有限的国家资源要如何分配,优先级为何。这是个重要
数据结构与算法
33,028
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章