|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 数据结构与算法 』
→ 将所有奇数存放在数组的前半部分,将所有的偶数存放在数组的后半部分
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1965
人关注过本帖
标题:
将所有奇数存放在数组的前半部分,将所有的偶数存放在数组的后半部分
只看楼主
加入收藏
chencuicui
等 级:
新手上路
帖 子:28
专家分:0
注 册:2007-5-1
楼主
收藏
问题点数:0 回复次数:3
将所有奇数存放在数组的前半部分,将所有的偶数存放在数组的后半部分
"设一系列正整数存放在一个数组中,试设计算法,将所有奇数存放在数组的前半部分,将所有的偶数存放在数组的后半部分。要求尽可能少用临时存储单元并使时间最少。请试着分析你实现的算法的时间复杂度和空间复杂度"
求一简洁高效的算法,谢谢.
搜索更多相关主题的帖子:
偶数
奇数
2008-01-20 11:20
举报帖子
使用道具
赠送鲜花
闪闪4521
等 级:
新手上路
帖 子:196
专家分:0
注 册:2007-11-30
第
2
楼
收藏
得分:0
两个指针,一个指向头一个指向尾,两边一起前进
2008-01-20 22:07
举报帖子
使用道具
赠送鲜花
provoke
来 自:广州
等 级:
新手上路
威 望:
5
帖 子:175
专家分:0
注 册:2007-6-14
第
3
楼
收藏
得分:0
“要求尽可能少用临时存储单元并使时间最少”
通常交换两个数据的位置是这们:
t=x;
x=y;
y=t;
但由于是数字,不以不用临时变量:
x=x+y;
y=x-y;
x=x-y;
也就是先将一个数加到另一个数里,再用大的减小的,从而省了临时变量。
至于说算法的时间复杂度,如楼上所言,从两头向中间靠拢。
爱我至爱,至死不渝!
2008-01-20 22:25
举报帖子
使用道具
赠送鲜花
shohokuooo
等 级:
新手上路
威 望:
1
帖 子:93
专家分:0
注 册:2005-1-29
第
4
楼
收藏
得分:0
其实可以考虑用类似快速排序的做法来实现
用两个指针一个指队首(设a),一个指队尾(设b),
让a向下先走,当遇到偶数时停下,再让b向上走,遇到奇数时停下,
比较a和b,如果a<b,那么交换ab的值,继续走
如果a>=b,那么结束,交换完成!
2008-01-24 10:34
举报帖子
使用道具
赠送鲜花
4
1/1页
1
快速回复:
将所有奇数存放在数组的前半部分,将所有的偶数存放在数组的后半部分
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.019642 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved