首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计一算法用最少时间在表中查找数值为x的元素,并将其与后继元素位置相交换。如果线性表中找不到该元素,则将该元素插入表中并使表中元素仍递增有序。 (1)给出算法的基本设计思
线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计一算法用最少时间在表中查找数值为x的元素,并将其与后继元素位置相交换。如果线性表中找不到该元素,则将该元素插入表中并使表中元素仍递增有序。 (1)给出算法的基本设计思
admin
2019-08-01
76
问题
线性表(a
1
,a
2
,a
3
,…,a
n
)中元素递增有序且按顺序存储于计算机内。要求设计一算法用最少时间在表中查找数值为x的元素,并将其与后继元素位置相交换。如果线性表中找不到该元素,则将该元素插入表中并使表中元素仍递增有序。
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
(3)分别给出算法各部分的时间复杂度。
选项
答案
(1)顺序存储的线性表递增有序,可以顺序查找,也可折半查找。题目要求“用最少的时间在表中查找数值为x的元素”,这里应使用折半查找方法。 (2)算法的设计如下: void searchExchangeInsert(ElemType a[],ElemType x){ int low=0:int high=n一1:int mid; //low和high指向线性表下界和上界的下标 while(low<=high){ mid=(low+high)/2; //找中间位置 if(a[mid]==x)break; //找到x,退出while循环 else if(a[mid]<x)low=mid+1; //~tj中点mid的右部去查 else high=mid一1: //到中点mid的左部去查 } if(a[mid]==x&&mid!=n){ //若最后一个元素与x相等, //则不存在与其后继交换的操作 t=a[mid]; a[mid]=a[mid+1]; a[mid+1]=t; } //数值x与其后继元素位置交换 if(low>high){ //查找失败,插入数据元素x int i; for(i=n—1:i>high;i一一) a[i+1]=a[i]; //后移元素 a[low]=x; //插入x } //结束插入 } (3)在利用折半查找的方法查找x的过程中时间复杂度为O(nlog
2
n);交换元素位置时的时间复杂度为O(1);当查找不成功时,插入元素时的时间复杂度为O(n)。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/x8Ci777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
完整地表述电磁场理论的物理学家是()。
在下列四本部书中有可能记载“甘薯所在,局面便有半年之粮,民间渐次广种”一语的只能是()。
太平天国在1853年冬颁布的纲领性文件是()。
标志着整风运动开始向反“右派”斗争转变的重要文件是()。
试论第三次技术革命。
北宋在统一南方割据势力的过程中特设(),把征南所得的财富统一存放,以作日后恢复幽燕之费。
系统阐明社会主义初级阶段理论是在()。
已知4位有效信息为1010,试根据下列要求进行编码。(1)按配偶原则将其编码为扩展的海明码,要求能发现两位错并纠正一位错。(2)将其编码为循环冗余校验码,生成多项式G(x)=1011。
某计算机的主存地址空间大小为256MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下:假定int类型数据用32位补码表示,程序
一个系统具有150个存储单元,在T0时刻系统按下表所示分配给3个进程。对下列请求应用银行家算法分别分析判定是否安全?(1)第4个进程P4到达,最大需求60个存储单元,当前请求:分配25个单元。(2)第4个进程P4到达,最大需求50个存储单元,当前请
随机试题
多媒体数据具有________特点。
下列关于黄体囊肿的描述,错误的是
患者,男性,62岁,进行性排尿困难,夜尿次数增多,直肠指诊发现前列腺明显肿大。最可能的诊断是
水杨酸类药物鉴别反应
某企业2011年末进行财产清查,查明存在的情况有:(1)甲种原材料账面结存1500千克,每千克成本为6元,实际结存2000千克,经查属于保管员赵某的责任事故,经批准应由赵某赔偿。增值,实际结存1570千克,经查属于收发计量不准确造成,经批准予以处理。(2)
下列各项中,企业可以考虑实行横向一体化战略的是()。
有以下程序intf(intx);main(){intn=1,m;m=f(f(f(n)));pfintf("%dhn",m);}intf(intx){retumx*2;}程序运行后的输出结果是
BodySystemsAbodysystemreferstoagroupoforgans,whicharepartsofthebodythatdoaspecialjob,suchastheheart,
OnenightinApril1912,ahugenewoceanliner,theTitanic,wascrossingtheAtlantic.Shewasjustaboutthemost【B1】______shipt
TheCaseforKillingMyMotherA)Mymotherwantedtodie,butthedoctorswouldn’tlether.Atleastthat’sthewayitseemedto
最新回复
(
0
)