首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计算法完成以下内容: (1)用最少的时间在表中查找数值为x的元素。 (2)若找到将其与后继元素位置相交换。 (3)若找不到将其插入表中并使表中元素仍递增
线性表(a1,a2,a3,…,an)中元素递增有序且按顺序存储于计算机内。要求设计算法完成以下内容: (1)用最少的时间在表中查找数值为x的元素。 (2)若找到将其与后继元素位置相交换。 (3)若找不到将其插入表中并使表中元素仍递增
admin
2019-08-01
82
问题
线性表(a
1
,a
2
,a
3
,…,a
n
)中元素递增有序且按顺序存储于计算机内。要求设计算法完成以下内容:
(1)用最少的时间在表中查找数值为x的元素。
(2)若找到将其与后继元素位置相交换。
(3)若找不到将其插入表中并使表中元素仍递增有序。
选项
答案
(1)顺序存储的线性表递增有序,可以顺序查找,也可折半查找。题目要求“用最少的时间在表中查找数值为x的元素”,这里应使用折半查找方法。 void SearchExchangelnsert(ElemType a[];ElemType x) ∥a是具有n个元素的递增有序线性表,顺序存储。本算法在表中查找数值为x的 //元素,如查到则与其后继交换位置;如查不到,则插入表中,且使表仍递增有序 { low=O: high=n-1; //low和high指向线性表下界和上界的下标 while(low<=high) { mid=(low+high)/2; //找中间位置 if(a[mid]==x)break; //找到x,退出while循环 else if(a[mid]
high) //查找失败,插入数据元素x { for(i=n-1;i>high;i一一) a[i+1]=a[i]; //后移元素 a[i+1]=x; //插入x } //结束插入 } //结束本算法 (2)算法讨论 首先是线性表的描述。算法中使用一维数组a表示线性表,未使用包含数据元素的一维数组和指示线性表长度的结构体。若使用结构体,对元素的引用应使用a.elem[i]。另外,元素类型就假定是ElemType,未指明具体类型。其次,C中一维数组下标从0开始,若说有n个元素的一维数组,其最后一个元素的下标应是n-1。最后,本算法可以写成三个函数,即查找函数、交换后继函数与插入函数,写成三个函数显得逻辑清晰、易读。
解析
转载请注明原文地址:https://kaotiyun.com/show/ntCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
西汉的主要赋税形式中,征收对象是儿童的是
简述十字军东侵的原因和影响。
试述马丁.路德宗教改革思想的主要内容。
罗斯福新政的中心措施是对()的调整。
下列法律文件中,规定内阁对君主负责的是()。
1941年~1942年,中共在根据地建设中,为争取抗战胜利奠定物质基础的措施是()。
假设系统的所有资源是同类型的,系统中的进程每次申请资源数最多1个,那么,下面列出的4种情况中,()可能发生死锁。情况序号系统中进程数资源总量
某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间
在TELNET协议中,用户发送的命令采用TCP传输到服务器,在TCP的数据包中,需要把()符号位置移位,从而使服务器尽快响应命令。
随机试题
A.瑞格列奈B.格列本脲C.罗格列酮D.二甲双胍E.阿卡波糖属于非磺酰脲类促胰岛素分泌药的是
心理应激概念的核心是
位于非洲的A国和B国爆发战争,C国宣布战时中立,C国作为战时中立的国家,下列哪些选项是它的权利或义务?
从产品需求者角度进行的质量控制,是指()的质量控制。
债券质押式回购交易的申报操作类似于()
马克思在《不列颠在印度的统治》一文中指出:“英国在印度斯坦造成社会革命完全是受极卑鄙的利益所驱使,而且谋取这些利益的方式也很愚蠢。……英国不管干了多少罪行,它造成这个革命毕竟是充当了历史的不自觉的工具。”对这段话的理解不准确的是()
设有主存-Cache层次的存储器,其主存容量1MB,Cache容量16KB,每字块有8个字,每字32位,采用直接地址映像方式。若主存地址为35301H,且CPU访问Cache命中,则该主存块在Cache的第()字块中(Cache起始字块为第0字块)
在错误记忆的实验中先呈现由两个单音节词组成的合成词(如handstand,shotgun)给被试学习。在随后的再认测验中,呈现词混合了先前所学单词、有一个音节与所学单词相同的词(如handmaid)、两个音节都与所学单词相同的词(如handgun)以及与所
有以下程序#include#defineS(x)4*(x)*x+1main(){intk=5,j=2;printf(“%d\n”,S(k+j));}程序运行后的输出结果是
A、 B、 C、 B
最新回复
(
0
)