首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知数组A[1……n]的元素类型为整型int,设计一个时间和空间上尽可能高效的算法,将其调整为左右两部分,左边所有元素为负整数,右边所有元素为正整数。不要求对这些元素排序。 (1)给出算法的基本设计思想; (2)根据设计思想,采用C或C++
已知数组A[1……n]的元素类型为整型int,设计一个时间和空间上尽可能高效的算法,将其调整为左右两部分,左边所有元素为负整数,右边所有元素为正整数。不要求对这些元素排序。 (1)给出算法的基本设计思想; (2)根据设计思想,采用C或C++
admin
2014-12-08
77
问题
已知数组A[1……n]的元素类型为整型int,设计一个时间和空间上尽可能高效的算法,将其调整为左右两部分,左边所有元素为负整数,右边所有元素为正整数。不要求对这些元素排序。
(1)给出算法的基本设计思想;
(2)根据设计思想,采用C或C++或JAVA语言表述算法,关键之处给出注释;
(3)说明你所设计算法的时间复杂度和空间复杂度。
选项
答案
(1)算法的基本设计思想如解析所述。 (2)用C语言算法描述如下: void Adjust(int A[]){ //调整数组A,使得A的左边为负整数,右边为正整数 int i=1,j=n,temp; while(i
0&&i
解析
本题主要考查线性表的顺序存储结构(这里为数组)的应用。算法的基本设计思想是先设置好上、下界和轴值,然后分别从数组前端查找正整数和从数组末端查找负整数,找到后进行交换,直到上、下界相遇。
具体做法是:设置两个指示器i和j,其中i=1,j=n;当A
为正整数,A[j]为负整数时,A
和A[j]交换;否则,A
为负整数时,则i++;A[j]为正整数时,则j--。这样,
可使算法的时间复杂度为O(n)。
转载请注明原文地址:https://kaotiyun.com/show/44xi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
论述十字军运动(十字军东征)发生的背景、过程及其影响。
二战后发达资本主义国家经济较快发展的原因是什么?
论述新石器时代及其文化类型。
国共合作之后,红军改编为八路军,其中原是红四方面军的是()
近代西方自由主义流派众多,其中功利主义学说代表人物是()。
巴黎和会上,英国既与法国联合抵制美国称霸世界,又与美国联合反对法国过分削弱德国的要求,英国这样做的目的是()。
“瓜步之战”发生在下列哪两个政权之间?()
下列哪一个不是罗马王政时代的管理机构?()
将两个长度为N的有序表归并到一个长度为2N的有序表,最少需要比较的次数是(),最多需要比较的次数是()。
随机试题
肱骨髁上骨折,易被刺伤或受挤压的血管神经有
股骨头骨软骨病保守治疗最重要的目的是()
提示胃穿孔最有意义的根据是
A.指关节梭状畸形B.杵状指C.匙状甲D.浮髌现象E.肢端肥大支气管扩张的体征是()
血小板减少,常见于
《医药产品注册证》、《进口药品注册证》和药品批准文号的有效期是
根据下面材料回答问题:关于城镇污水集中处理情况,下列表述正确的是()。
Bettingagainstanindustrywithaddictsforcustomerscarriesobviousrisks.【C1】______theseareuncertaintimesforBigTobacco
TheSchoolWherePupilsRateTheirTeachersPupilsobservetheirteacherattheGeorgeMitchellSchoolinLondonThereisnothin
Listentothefollowingdialogueandinterpretitasrequired.AfteryouhearasentenceorashortpassageinChinese,interpre
最新回复
(
0
)