+ -
当前位置:首页 → 问答吧 → 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)

如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)

时间:2011-10-28

来源:互联网

如题

作者: arvon009   发布时间: 2011-10-28

额,这是不可能的.否则大家都别学算法了,直接都用这个了.

1,时间复杂度O(n),空间复杂度O(N)
2,时间复杂度O(n*Lgn),空间复杂度O(1)

目前最优只能这样,要么牺牲时间,要么牺牲空间.

除非,某些算法的最优情况下,可以做到,比如插入排序后,只有两张牌乱了顺序.

但是,我们一般分析的都是平均情况和最差情况,才是算法重点要做的事情.

作者: superdullwolf   发布时间: 2011-10-28

建议楼主深入研究这个问题,研究出来后拿下图灵奖应该不成问题

作者: bellbird   发布时间: 2011-10-28

基于比较的下界是 O(Nlog N),空间O(1)

计数排序 O(N),但空间O(N)

作者: lee535570373   发布时间: 2011-10-28

引用楼主 arvon009 的回复:
如题

表示不懂, 应该是不存在这样的算法..

作者: SMCwwh   发布时间: 2011-10-28

必须不存在。

基于比较的算法,时间复杂度o(nlgn),空间复杂度o(1)

计数排序可以达到O(N)的时间复杂度,但是空间的复杂度却是O(N).
 

作者: ohmygirl   发布时间: 2011-10-28

楼主应该没把题目说全吧??

作者: pb_myown   发布时间: 2011-10-28

热门下载

更多