首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
已知顺序表A,在不改变顺序表中奇数号元素与偶数号元素相对位置的前提下,设计算法,将所有奇数号元素移到所有偶数号元素前。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。 (
已知顺序表A,在不改变顺序表中奇数号元素与偶数号元素相对位置的前提下,设计算法,将所有奇数号元素移到所有偶数号元素前。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。 (
admin
2019-01-16
37
问题
已知顺序表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://jikaoti.com/ti/bufjFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
乾隆时期,明确规定了驻藏大臣的地位与达赖班禅同等,并实行“金瓶掣签”制度的文件是()。
西汉末年,将《太初历》调整为《三统历》的是()。
《中国人民解放军宣言》发表的具体时间是()。
下列哪两个国家是第二次工业革命的发源地和“中心”?
1946年3月5日,英国前首相丘吉尔在富尔敦发表了(),发出第一个明白无误的“冷战”信号。
在一个长度为n(n>1)的带头结点的单链表h上,设有尾指针r(指向尾结点),则执行()操作与链表的长度有关。
一个由高速缓冲存储器Cache与主存储器组成的二级存储系统。已知主存容量为1MB,按字节编址,缓存容量为32KB,采用组相联方式进行地址映射与变换,主存与缓存的每一块为64B,缓存共分8组。(1)写出主存与缓存的地址格式(标明各字段名称与位数)
某阅览室晚间开放,第一个进入的读者开灯,最后一个离开的读者关灯。利用P、V原语操作实现读者进程。
给定集合S={0,1,2,3,4),以及优先关系R={0<1,1<4,1<2,2<3,2<4,4<0)。(1)R是偏序关系吗?(2)证明你的结论。
设无向图G=(V,E)和G’=(V’,E’),如果G’是G的生成树,则下面说法中错误的是()。
随机试题
Wouldn’titbegreatifyoucouldjustlookupattheskyandreadtheweatherforecastrightaway?Well,youcan.Theforecast
女性,36岁,幼年患支气管肺炎,以后常有咳嗽、咳脓性痰,咳痰量每日不等,4年前开始咯血,1周前因发热、咳痰量增加,每日150ml左右入院治疗。此时检查最可能发现的体征是
A、口服给药B、肌内及皮下注射C、静脉注射D、静脉滴注E、舌下给药血药浓度受注射部位血流速度、pH及制剂影响较大的给药方式是
食品卫生地方法规是指
风险对策应形成风险管理计划,下列选项中,属于风险计划内容的有()。
下列银行贷款分类中不属于不良贷款的是()
21,31,52,73,(),138
有些单位实行竞争性薪酬体系,员工的工作业绩会与他人对比评估。由此决定是否能够加薪。在庆业公司,加薪往往要考虑到员工的教育经历和工作经验。但是,庆业公司的新任总经理认为,应该倡导团队精神。在公司中营造一种和谐融洽的工作环境。以下哪项如果为真,可以成为新任总
已知由线积分+[f(x)一x2]dy与路径无关,其中f(x)有连续一阶导数,f(0)=1,则∫(0,0)(1,1)yf(x)dx+[f(x)一x2]dy等于()
一般来说,不属于系统分析员的工作是()。
最新回复
(
0
)