首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计一算法用最少时间在表中查找数值为x的元素,并将其与后继元素位置相交换。如果线性表中找不到该元素,则将该元素插入表中并使表中元素仍递增有序。 根据设计思想,采用C或C++或J
线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计一算法用最少时间在表中查找数值为x的元素,并将其与后继元素位置相交换。如果线性表中找不到该元素,则将该元素插入表中并使表中元素仍递增有序。 根据设计思想,采用C或C++或J
admin
2019-08-15
55
问题
线性表(a
1
,a
2
,a
3
,…,a
n
)中元素递增有序且按顺序存储于计算机内。要求设计一算法用最少时间在表中查找数值为x的元素,并将其与后继元素位置相交换。如果线性表中找不到该元素,则将该元素插入表中并使表中元素仍递增有序。
根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
算法的设计如下: void SearchExchangeInsert(ElemType a[],ElemType x){ in 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; //到中点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—l;i>high;i一一) a[i+1]=a[i]; //后移元素 a[low]=x; //插入x } //结束插入 }
解析
转载请注明原文地址:https://kaotiyun.com/show/glCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列哪两个国家是第二次工业革命的发源地和“中心”?
“瓜步之战”发生在下列哪两个政权之间?()
下列各组条约的时间排列顺序正确的是()。①《布列斯特条约》②《色佛尔条约》③《九国公约》④《洛桑条约》
中国革命必须走农村包围城市最后夺取政权这样一条道路,主要取决于()。
著名的网络OSI七层模型是由()组织提出来的。
给定序列{3,5,7,9,11,13,15,17),(1)按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成后的二叉排序树,并求在等概率情况下查找成功的平均查找长度。(2)按表中元素的顺序构造一棵平衡二叉树,并求其在等概率情
在协议数据单元中,控制信息所不包括的内容是()。
TCP/IP网络中,某主机的IP地址为130.25.3.135,子网掩码为255.255.255.192,那么该主机所在的子网的网络地址是()。
三个进程P1、P2、P3互斥使用一个包含N(N>O)个单元的缓冲区。Pl每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中:P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用getev
已知主机A的主频为40MHz,现在用这台主机运行一组标准测试程序A,A中包含的各种指令和响应所需要的时间如下表所示:请回答以下问题:(1)求主机有效的CPI。(2)求主机的MIPS。(3)假设程序A在计算机上运行的时间为100
随机试题
(Para.2,PassageThree)Forthisreason,theinternationalcommunityhascommitteditselftogettingalltheworld’schildr
A.脾破裂B.消化道出血C.阑尾炎D.结肠破裂E.胃破裂可出现早期症状轻,而晚期症状重的是
气升举无力形成的病证是()脏腑功能低下或衰退形成的病证是()
以下不属于蛛网膜下腔出血临床表现的是
在长管水力计算中,( )。
世界上现存最高的木塔是()。
(92年)设n个随机变量X1,X2,…,Xn独立同分布,DX1=σ2,,则【】
AmericanScientistsTrytoDevelopArtificialBloodVesselwiththeSkinCellScientistshavegrownbloodvesselsforkidney
关于数据库视图,下列说法正确的是()。
StandardEnglishisthevarietyofEnglishwhichisusuallyusedinprintandwhichisnormallytaughtinschoolsandtonon-nat
最新回复
(
0
)