社区
数据结构与算法
帖子详情
请教一个简单的问题,谢谢先了!
Mubai
2001-08-02 09:06:06
a[1,n]的前k 个元素及后n-k个元素均为升序排列,现要把整个a[1,n]排为升序。要求时间复杂度为O(n), 并且只能新增O(1)个元素的存储空间
...全文
344
34
打赏
收藏
请教一个简单的问题,谢谢先了!
a[1,n]的前k 个元素及后n-k个元素均为升序排列,现要把整个a[1,n]排为升序。要求时间复杂度为O(n), 并且只能新增O(1)个元素的存储空间
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
34 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
axial
2001-10-20
打赏
举报
回复
当k=1时??是否有解??k任意吗??
Mubai
2001-10-17
打赏
举报
回复
我说这个问题就这么样了吗?就没人。。。。。。。。。。。。。。。。
Mubai
2001-10-10
打赏
举报
回复
to gop:当然有效啊,不过要注意空间复杂度哦。你说出来给大家看看。
gop
2001-10-09
打赏
举报
回复
最多移动2N次的方法有效否,我可以找到
Mubai
2001-10-09
打赏
举报
回复
看来这次我出了个超级难题,呵呵。。。。。。。。。。。什么?你不信?那你写出来看看!在分治算法中,有种线形复杂度的算法,谁懂啊?估计这种方法可以的。
huahao0672
2001-09-27
打赏
举报
回复
想了一段时间觉得可能是无解的。满足了第一个条件但第二个条件又无法满足,而满足了第二个条件又不满足第一个条件。我以前还从来没有研究过这个问题。如果是用归并排序空间复杂度又不满足。而用直接插入时间复杂度又不满足。
不知道有没有来解决这个问题。我愿给他高分。
mathe
2001-09-26
打赏
举报
回复
TO:Mubai, RE:我建议大家可以试试递归与分治法
使用递归会并不可行,所谓空间复杂度是包含使用的堆栈空间的,比如你递归的深度为O(log(n)),那么你使用的空间复杂度已经至少是O(log(n))
huahao0672
2001-09-26
打赏
举报
回复
这个问题不太好办,我回去好好的研究了一下。如果是链表不难,关键是顺序表。这就不好办了。
不知有没有人解决这个问题。
starfish
2001-09-25
打赏
举报
回复
TO:Mubai(木白)
使用常数个控件的算法前面不时有人说出来了么?
我上次发帖子的时候就想到了使用两个元素的空间的算法了,就是和归并排序差不多,你再想想看。
mathe
2001-09-25
打赏
举报
回复
我认为这个题目是无法解决的,凭感觉需要的最小空间是O(log(N)).
不是任何问题都是可以解决的。
huahao0672
2001-09-25
打赏
举报
回复
这个问题有点意思,因为对于顺序表而言关键是将元素后移。我会给也一个令大家满意的算法的。
Mubai
2001-09-25
打赏
举报
回复
我就不信这儿这么多人就没人能做出来?
Mubai
2001-09-08
打赏
举报
回复
to starfish:你说的前面部分很对,你说出了O(N)的概念。而这到题要求只能新增O(1)个元素的存储空间,其实就是说新增的存储空间应该是个常数,而与问题规模n无关。这道题是没有问题的提法是没有问题的。其实这道题是一本算法书上的一道练习题。
Mubai
2001-09-07
打赏
举报
回复
我急啊,怎么没人说话啊?
starfish
2001-09-07
打赏
举报
回复
这个题目出的就有问题,“只能新增O(1)个元素的存储空间”这句话就不对。
首先你搞错了大O符号的用法,
设f(N)和g(N)是定义在正数集上的正函数。
如果存在正的常数C和自然数N0,使得当N >= N0 时有 f(N)<= C*g(N) 。则称函数f(N)当N充分大时上有界,且g(N)是它的一个上界,记为f(N)=Ο(g(N))。这时我们说f(N)的阶不高于g(N)的阶。
举几个例子:
(1)因为对所有的 N >= 1 有 3N <= 4N,我们有3N =Ο(N);
(2)因为当 N >= 1 时有 N + 1024 <= 1025N,我们有 N +1024=Ο(N);
(3)因为当 N >= 10 时有2N^2 + 11N -10 <= 3N^2,我们有2N^2+11N-10 = O(N^2);
(4)因为对所有 N >= 1 有 N^2 <= N^3,我们有 N^2 = Ο(N^3);
(5)作为一个反例 N^3 ≠ Ο(N^2)。因为若不然,则存在正的常数C和自然数N0,使得当N >= N0时有 N^3 <= CN^2,即 N <= C 。显然当取N =max(N0, [C]+l)时这个不等式不成立,所以 N^3 ≠ Ο(N^2)。
所以,f(N) = O(1)的含义是函数f(N)的阶不超过函数 g(N) = 1 的阶, g(N) = 1是一个和N无关的常数函数,任何常数函数都和 g(N) =1 同阶,所以对于任何常数函数其阶都是 O(1)
因此,用了1个变量其空间复杂度是O(1),用了100000000000个变量其空间复杂度还是O(1),只要使用的变量的数目不随着问题的输入规模N变化,其复杂度都是O(1)! 所以上面所有的算法的空间复杂度都是O(1).
laozi
2001-09-07
打赏
举报
回复
你等一等,这道题目我大学上数据结构的时候做过,我现在手头有些事,过两天给你答复。
Mubai
2001-08-31
打赏
举报
回复
完了,这么多人就没有能把这道简单的算法搞出来,还有没有能人啊?
门吹西风
2001-08-21
打赏
举报
回复
pascal里有Break吗?
yanghui88
2001-08-20
打赏
举报
回复
up
林仪明
2001-08-18
打赏
举报
回复
gz
加载更多回复(14)
请教
高手关于EXCEL行列转换的
问题
!
谢谢
!急急急!!!
一般的方法行不通,可能要用到宏或者编
一个
程序,请帮忙!
Stateflow模型
问题
请教
-test2.mdl
Stateflow模型
问题
请教
-test2.mdl QQ截图20120611222714.png 附件中的ReqST=2,运行的时候为什么不能从St1转移到St2呢?麻烦指教一下,
谢谢
!
一个
牛人提供的GIS源码(很好)
类似
一个
简单
的新闻系统,加上一些
简单
的留言板等等功能,可能会添加一些Gmap API开发类的内容。 www.wikish.cn:维基上海。有了点想法和思路,但暂时由于技术能力等原因无法实现。 其他:还有两个玉米没有想好(呵呵...
我想
请教
各位高手
一个
问题
!
我想
请教
各位高手
一个
问题
,我用的是.net2003智能化手持的开发。 在调用服务程序时(用winform写的)开始时是正常的,可是没调两次就会出现
一个
异常,而不能再调用服务程序上的函数,异常中出现的错误如下: 未...
[求助]
请教
一个
问题
!
向大家
请教
一个
问题
,在.Net里,能否利用反射,或者其它功能,能截取应用程序对已知函数调用。例如:已知
一个
函数m_func_A(),能否截取所有对m_func_A()的调用,当然,这里是没有m_func_A()源码。这里主要是想
请教
有...
数据结构与算法
33,027
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章