首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知顺序表A,在不改变顺序表中奇数号元素与偶数号元素相对位置的前提下,设计算法,将所有奇数号元素移到所有偶数号元素前。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。 (
已知顺序表A,在不改变顺序表中奇数号元素与偶数号元素相对位置的前提下,设计算法,将所有奇数号元素移到所有偶数号元素前。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。 (
admin
2019-01-16
69
问题
已知顺序表A,在不改变顺序表中奇数号元素与偶数号元素相对位置的前提下,设计算法,将所有奇数号元素移到所有偶数号元素前。
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。
选项
答案
(1)基本的设计思想:先将偶数号元素复制到一个辅助空间,然后整理数组剩下的奇数号元素,最后将辅助空间中的元素复制到数组的后半部分,但这种思路的空间复杂度为O(n)。 另一种思路: ①在数组尾部从后往前找到第一个奇数号元素,将此元素与其前面的偶数号元素交换。这样,就形成了两个前后相连且相对顺序不变的奇数号元素“块”。 ②暂存①中“块”前面的偶数号元素,将“块”内奇数号结点依次前移,然后将暂存的偶数号结点复制到空出来的数组单元中。就形成了三个连续的奇数号元素“块”。 ③暂存②中“块”前面的偶数号元素,将“块”内奇数号结点依次前移,然后将暂存的偶数号结点复制到空出来的数组单元中。就形成了四个连续的奇数号元素“块”。 ④如此继续,直到前一步的“块”前没有元素为止。 (2)算法的设计如下: void Swap(ElemType A[],int n){ int i=n,v=1; //i为工作指针,初始假设n为奇数,v为“块”的大小 ElemType temp: //辅助变量 if(n%2==0)i=n一1; //若n为偶数,则令i为n—1 while(i>1){ //假设数组从1开始存放。当i=1时,气泡浮出水面 temp=A[i一1]; //将“块”前的偶数号元素暂存 for(int j=0;j
2)。虽然时间复杂度为O(n
2
),但因n
2
前的系数很小,实际达到的效率是很高的。算法的空间复杂度为O(1)。
解析
转载请注明原文地址:https://kaotiyun.com/show/neRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
中国共产党在敌后战场上开创的第一块根据地是()。
周厉王时期发生了国人暴动,在此之后,周公、召公共同主持西周政事,史称“共和行政”,这一年被称为共和元年,也是我国有确切文字纪年的开始,这一年是()。
“英国不想为捷克牺牲一兵一卒,英国同意任何合理的解决办法,只要不用武力。”下列哪一事件体现了这一主张?
《中国人民解放军宣言》发表的具体时间是()。
杜鲁门提出“对日本的占领不能重蹈德国的覆辙”,这一主张付诸实行后()。
在西欧列强海外殖民扩张进程中,各国之间相互争夺海上霸权。18世纪末,英国在争霸中取得胜利的根本原因在于()
红山文化的代表性墓葬形式为()。
提出电磁感应定律的是物理学家()。
(1)根据无类IP地址的规则,每个网段中有两个地址是不分配的:主机号全0表示网络地址,主机号全1表示广播地址。因此8位主机号所能表示的主机数就是28-2,即254台。该网络要划分为两个子网,每个子网要120台主机,因此主机位数X应该满足下面三个条件:
某DRAM芯片内部存储元排列成1024.×1024的矩阵,且已知其存取周期为0.1μs,最大刷新间隔为2ms。当采用异步刷新方式时,死时间()。
随机试题
课程文件的三个层次是课程计划、_______和教科书。
"Lookingatsomeone’seyeshelpsusunderstandwhetherapersonisfeelingsad,angry,fearful,orsurprised.Asadults,wethen
下列选项中属于长期资产的有()。
城市土地利用数量结构指标可与国外大城市横向比较,从发达国家的土地利用结构情况来看,最主要的特征是()用地的比重较大。
某建设项目经当地主管部门批准后,由建设单位委托代理机构组织公开招标。其招标程序确定为:(1)发出招标邀请书;(2)编制招标文件;(3)编制标底;(4)发放招标文件;(5)投标单位资格预审;(6)组织现场踏勘和招标答疑;(7)接收投标文件;(8)开标;(9)
提出“劳动是财富之父,土地是财富之母”的是()。
为正确使用临界资源,可把对临界资源的访问分成进入区、临界区、退出区和剩余区四部分。请指出下列飞机订票代码中whileTs(&lock)语句属于哪一个区域?()intbooking(id){intc;w
Mycousinlikeseatingverymuchbutheisn’tvery_____aboutthefoodheeats.
Itisnotlongsinceconditionsinthemineswereworsethantheyarenow.Therearestill(1)_____afewveryoldwomenwhoin
Itseemstomethattoday’sprime-timeleaderneedsatop-5listthatclearlylaysouthisorherpriorities.Whetheryou’rerun
最新回复
(
0
)