一道算法题

Jack_Yin 2009-10-22 04:05:58
将数组[a1,a2,...,an,b1,b2,...,bn],变成[a1,b1,a2,b2,...,an,bn]要求时间复杂度为O(n),并分析空间复杂度
...全文
181 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jack_Yin 2009-10-23
  • 打赏
  • 举报
回复
本来打算贴代码的 能实现,但是不是O(n)的
努力O(n)中.....
Jack_Yin 2009-10-23
  • 打赏
  • 举报
回复
结贴了,请关注
http://topic.csdn.net/u/20091023/15/2660edd2-7493-437d-9b66-12af512000fc.html
phpjspasp 2009-10-22
  • 打赏
  • 举报
回复
顶一下
liuxiaobing2008 2009-10-22
  • 打赏
  • 举报
回复
顶一下,呵呵
tianya0609 2009-10-22
  • 打赏
  • 举报
回复
时间O(N),空间O(1)可惜不会实现,O(∩_∩)O哈哈~。高手贴下代码或者思路指教下啊。O(∩_∩)O哈哈~
Jack_Yin 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 zhijializhangcao 的回复:]
如果如题所示这么规律,而且不要求本地操作的话,O(n)时间复杂度可以实现。
如2楼所说,另开个数组B[2n](假设原数组为A[2n])
int idx;
for (int i = 0; i < n; i ++)
{
  idx = 2*i;
  B[idx] = A[i];
  B[idx+1] = A[i+n];
}//end
高手继续补充 ... 
[/Quote]
另开个数组不好开,n不是固定的,c中有不能定义动态数组怎么搞?
zhijializhangcao 2009-10-22
  • 打赏
  • 举报
回复
如果如题所示这么规律,而且不要求本地操作的话,O(n)时间复杂度可以实现。
如2楼所说,另开个数组B[2n](假设原数组为A[2n])
int idx;
for (int i = 0; i < n; i ++)
{
idx = 2*i;
B[idx] = A[i];
B[idx+1] = A[i+n];
}//end
高手继续补充 ...
fire_woods 2009-10-22
  • 打赏
  • 举报
回复
按照道理,这个题目一个循环就可以搞定的.
Jack_Yin 2009-10-22
  • 打赏
  • 举报
回复
我写了一个 用了 两个循环
本人不会算时间复杂度,等会发上来 ,大家参考下
fire_woods 2009-10-22
  • 打赏
  • 举报
回复
不申请数组就要知道前一个数组转换到后一个数组每个数字的新位置在哪里,然后一个一个置换就可以了.
threeleafzerg007 2009-10-22
  • 打赏
  • 举报
回复
其实 这题关键是要求 空间复杂度O(1)的条件下 时间复杂度达到O(n) ,这就难了。

空间复杂度如果O(n)的话 就太easy了,

将原数组分拆成 上下两半的小数组 然后交叉插入就OK。

貌似是google题 不是那么好解的。
fire_woods 2009-10-22
  • 打赏
  • 举报
回复
楼上的,不一定.
Jack_Yin 2009-10-22
  • 打赏
  • 举报
回复
本人初学 补充问个问题:是否 出现 二重循环 时间复杂度 就一定不会是O(n),而是会变成O(n^2)
谢谢
showjim 2009-10-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sjgh_1314 的回复:]
只想到一个空间复杂度为o(n)的。申请一个2n的数组
太弱了
[/Quote]
我也这么想,因为如果计算下标的话可能会有环出现.
Jack_Yin 2009-10-22
  • 打赏
  • 举报
回复
哦 应该是楼上上的 给个思路哈
Jack_Yin 2009-10-22
  • 打赏
  • 举报
回复
楼上的 给个思路哈
sjgh_1314 2009-10-22
  • 打赏
  • 举报
回复
只想到一个空间复杂度为o(n)的。申请一个2n的数组
太弱了
fire_woods 2009-10-22
  • 打赏
  • 举报
回复
时间复杂度O(n),空间复杂度O(1)

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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