2021年计算机软件技术基础试题库_第1页
2021年计算机软件技术基础试题库_第2页
2021年计算机软件技术基础试题库_第3页
2021年计算机软件技术基础试题库_第4页
2021年计算机软件技术基础试题库_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、单项选取题一种算法应当是()。A)程序 B)问题求解环节描述C)要满足五个基本属性 D)A和C算法指是()。A)计算机程序 B)解决问题计算办法C)排序算法 D)解决问题有限运算序列。与数据元素自身形式、内容、相对位置、个数无关是数据()。A)存储构造 B)逻辑构造 C)算法 D)操作从逻辑上可以把数据构造分为()两大类。A)动态构造、静态构造 B)顺序构造、链式构造C)线性构造、非线性构造 D)初等构造、构造型构造下列论述中对的是()。A)一种逻辑数据构造只能有一种存储构造B)数据逻辑构造属于线性构造,存储构造属于非线性构造C)一种逻辑数据构造可以有各种存储构造,且各种存储构造不影响数据解决效率D)一种逻辑数据构造可以有各种存储构造,且各种存储构造影响数据解决效率数据基本单位是() A)数据项 B)数据类型 C)数据元素 D)数据变量下列程序时间复杂度为()i=0;s=0;while(s<n){i++;s=s+i;}A)O() B)O() C)O(n) D)O(n2)下列程序段渐进时间复杂度为()。for(inti=1;i<=n;i++)for(intj=1;j<=m;j++)A[i][j]=i*j;A)O(m2) B)O(n2) C)O(m*n) D)(m+n)程序段如下:sum=0;for(i=1;i<=n;i++)for(j=1;j<=n;j++)sum++;其中n为正整数,则最后一行语句频度在最坏状况下是()。A)O(n) B)O(nlogn) C)O(n3) D)O(n2)在下面程序段中,对x赋值语句频度为()。for(i=1;i>=n;i++)for(j=1;j>=n;j++)x:=x+1;A)O(2n) B)O(n) C)O(n2) D)O(log2n)程序段for(i:=n-1;i<=1;i--)for(j:=1;j>=i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}其中n为正整数,则最后一行语句频度在最坏状况下是()。A)O(n) B)O(nlogn) C)O(n3) D)O(n2)设有一种递归算法如下:intfact(intn){/*不不大于等于0*/if(n<=0)return1;elsereturnn*fact(n-1);}则计算fact(n)需要调用该函多次数为()。A)n B)n+1 C)n+2 D)n-1下述程序段中语句①频度是()。s=0;for(i=1;i<m;i++)for(j=0;j<=i;j++)s+=j;A) B) C) D)若某线性表中最惯用操作是在最后一种元素之后插入一种元素和删除第一种元素,则最节约运算时间存储方式是()。A)单链表 B)仅有头指针单循环链表C)双链表 D)仅有尾指针单循环链表求循环链表中当前结点后继和前驱时间复杂度分别是()。A)O(n)和O(1) B)O(1)和O(1) C)O(1)和O(n) D)O(n)和O(n)求单链表中当前结点后继和前驱时间复杂度分别是()。 A)O(n)和O(1) B)O(1)和O(1) C)O(1)和O(n) D)O(n)和O(n)非空单循环链表头指针为head,尾指针为rear,则下列条件成立是()。 A)rear->next==head B)rear->next->next==head C)head->next==rear D)head->next->next==rear从一种长度为n顺序表中删除第i个元素(1≤i≤n)时,需向前移动元素个数是()。A)n-i B)n-i+1 C)n-i-1 D)已知一种有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分检索值为90元素时,检索成功需比较次数是()。A)1 B)2 C)3 D)假设以行优先顺序存储三维数组R[6][9][6],其中元素R[0][0][0]地址为2100,且每个元素占4个存储单元,则存储地址为2836元素是()。A)R[3][3][3] B)R[3][3][4] C)R[4][3][5] D)R[4][3][4]设有一种10阶对称矩阵A,采用压缩存储方式以行序为主序存储,a00为第一种元素,其存储地址为0,每个元素占有1个存储地址空间,则a45地址为()。A)13 B)35 C)17 D)36线性表采用链式存储时,节点存储地址()。A)必要是不持续 B)持续与否均可C)必要是持续 D)和头节点存储地址相持续用链表表达线性表长处是()。A)便于随机存取 B)耗费存储空间比顺序表少C)数据元素物理顺序与逻辑顺序相似D)便于插入与删除链表不具备特点是()。A)插入、删除不需要移动元素 B)可随机访问任一元素C)不必事先预计存储空间 D)所需空间与线性长度成正比在长度为n顺序表中删除第i个元素(1≤i≤n)时,元素移动次数为()。A)n-i+1 B)i C)i+1 D)n-i采用顺序搜索办法查找长度为n顺序表达,搜索成功平均搜索长度为()。A)n B)n/2 C)(n-1)/2将长度为n单链表链接在长度为m单链表之后算法时间复杂度为()。A)O(1) B)O(n) C)O(m) D)O(m+n)若不带头结点单链表头指针为head,则该链表为空鉴定条件是()。A)head==NULL B)head->next==NULL C)head!=NULL D)head->next==head某线性表中最惯用操作是在最后一种元素之后插入一种元素和删除第一种元素,则采用()存储方式最节约运算时间。A)单链表 B)仅有头指针单循环链表C)双链表 D)仅有尾指针单循环链表若容许表达式内各种括号混合嵌套,则为检查表达式中括号与否对的配对算法,普通选用辅助构造是()。 A)栈 B)线性表 C)队列 D)二叉排序树顺序栈S中top为栈顶指针,指向栈顶元素所在位置,elem为存储栈数组,则元素e进栈操作重要语句为()。A)s.elem[top]=e; s.top=s.top+1; B)s.elem[top+1]=e;s.top=s.top+1;C)s.top=s.top+1; s.elem[top+1]=e; D)s.top=s.top+1;s.elem[top]=e;循环队列sq中,用数组elem[0··25]存储数据元素,sq.front批示队头元素前一种位置,sq.rear批示队尾元素当前位置,设当前sq.front为20,sq.rear为12,则当前队列中元素个数为()。A)8 B)16 C)17 D)18链式栈与顺序栈相比,一种比较明显长处是()。A)插入操作更加以便 B)普通不会浮现栈满状况C)不会浮现栈空状况 D)删除操作更加以便一种递归定义可以用递归过程求解,也可以用非递归过程求解,但单从运营时间来看,普通递归过程比非递归过程()。A)较快 B)较慢 C)相似 D)不定若已知一种栈入栈序列是1,2,3,4……n,其输出序列为p1,p2,p3,……pn,若p1==n,则pi为()。 A)i B)n==i C)n-i+1 D)不拟定一种栈入栈序列是a,b,c,d,e,则栈不也许输出序列是()。A)edcba B)decba C)dceab D)abcde若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不也许浮现出栈序列是()。A)2,4,3,1,5,6 B)3,2,4,1,6,5C)4,3,2,1,5,6 D)2,3,5,1,6,4对于栈操作数据原则是()。A)先进先出 B)后进先出 C)后进后出 D)不分顺序栈和队列共同点是()。A)都是先进先出 B)都是先进后出C)只容许在端点处插入和删除元素 D)没有共同点一种队列入队序列是1,2,3,4,则队列输出序列是()。A)4,3,2,1 B)1,2,3,4 C)1,4,3,2 D)3,2,4,1设数组data[m]作为循环队列SQ存储空间,front为队头指针,rear为队尾指针,则执行出对操作后其头指针front值为()。A)front=front+1 B)front=(front+1)%(m-1)C)front=(front-1)%m D)front=(front+1)%m引起循环队列队头位置发生变化操作是()。A)出队 B)入队 C)取队头元素 D)取队尾元素设以数组A[m]存储循环队列元素,其头尾指针分别为front和rear,则当前队列中元素个数为()。A)(rear-front+m)%mB)rear-front+1 C)(front-rear+m)%mD)二维数组A[12][18]采用列优先存储办法,若每个元素各占3个存储单元,且A[0][0]地址为150,则元素A[9][7]地址为()。A)429 B)432 C)435设有一种10阶对称矩阵A[10][10],采用压缩方式按行将矩阵中下三角某些元素存入一维数组B[]中,A[0][0]存入B[0]中,则A[8][5]在B[]中()位置。A)32 B)33 C)41若对n阶对称矩阵A以行序为主序方式将其下三角形元素(涉及主对角线上所有元素)依次存储于一维数组B[1..(n(n+1))/2]中,则在B中拟定aij(i<j)位置k关系为()。A)i*(i-1)/2+j B)j*(j-1)/2+i C)i*(i+1)/2+j D)j*(j+1)/2+i对稀疏矩阵进行压缩存储目是()。A)便于进行矩阵运算 B)便于输入和输出C)节约存储空间 D)减少运算时间复杂度对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))成果是()。A)(e,f) B)((e,f)) C)(f) D)()设广义表L=((a,b,c)),则L长度和深度分别为()。A)1和1 B)1和3 C)1和2 D)2和树中所有结点度之和等于所有结点数加()。A)0 B)1 C)-1 D)2在一棵具备n个结点二叉链表中,所有结点空域个数等于()。A)n B)n-1 C)n+1 D)2*n某二叉树先序序列和后序序列正好相反,则该二叉树一定是()二叉树。A)空或只有一种结点 B)高度等于其节点数C)任一结点无左孩子 D)任一结点无右孩子具有10个结点二叉树中,度为0结点数为4,则度为2结点数为()A)3 B)4 C)5 D)6除第一层外,满二叉树中每一层结点个数是上一层结点个数()A)1/2倍 B)1倍 C)2倍 D)3倍对一棵有100个结点完全二叉树按层编号,则编号为49结点,它父结点编号为()A)24 B)25 C)98 D)99可以惟一地转化成一棵普通树二叉树特点是()A)根结点无左孩子 B)根结点无右孩子 C)根结点有两个孩子 D)根结点没有孩子设高度为h二叉树上只有度为0和度为2结点,则此类二叉树中所包括结点数至少为()。A)2h B)2h-1 C)2h+1 D)h+1在一棵度为3树中,度为3节点个数为2,度为2节点个数为1,则度为0节点个数为()。 A)4 B)5 C)6 D)设森林F相应二叉树为B,它有m个结点,B根为p,p右子树结点个数为n,森林F中第一棵 子树结点个数是()。A)m-n B)m-n-1 C)n+1 D)条件局限性,无法拟定将一株有100个节点完全二叉树从上到下,从左到右依次进行编号,根节点编号为1,则编号为49节点左孩子编号为()。A)98 B)89 C)50 D)没有孩子下列图示顺序存储构造表达二叉树是(A)树最适合用来表达()。A)有序数据元素 B)无序数据元素 C)元素之间具备分支层次关系数据 D)元素之间无联系数据在一种非空二叉树中序遍历序列中,根结点右边()。 A)只有右子树上所有结点 B)只有右子树上某些结点C)只有左子树上某些结点 D)只有左子树上所有结点任何一棵二叉树叶结点在先序、中序和后序遍历序列中相对顺序()。 A)不发生变化 B)发生变化 C)不能拟定 D)以上都不对深度优先遍历类似于二叉树()。A)先序遍历 B)中序遍历 C)后序遍历 D)层次遍历广度优先遍历类似于二叉树()。A)先序遍历 B)中序遍历 C)后序遍历 D)层次遍历任何一种无向连通图最小生成树()。A)只有一棵 B)一棵或多棵 C)一定有多棵 D)也许不存在(注,生成树不唯一,但最小生成树唯一,即边权之和或树权最小状况唯一)在分析折半查找性能时经常加入失败节点,即外节点,从而形成扩充二叉树。若设失败节点i所在层次为Li,那么查找失败到达失败点时所做数据比较次数是()。A)Li+1 B)Li+2 C)Li-1 D)Li向一种有127个元素原顺序表中插入一种新元素并保存本来顺序不变,平均要移动()个元素。 A)8 B)63.5 C)63 D)7由同一组核心字集合构造各棵二叉排序树()。A)其形态不一定相似,但平均查找长度相似B)其形态不一定相似,平均查找长度也不一定相似C)其形态均相似,但平均查找长度不一定相似D)其形态均相似,平均查找长度也都相似衡量查找算法效率重要原则是()。A)元素个数 B)所需存储量 C)平均查找长度D)算法难易限度适合对动态查找表进行高效率查找组织构造是()。A)有序表 B)分块有序表 C)二叉排序树D)迅速排序能进行二分查找线性表,必要以()。A)顺序方式存储,且元素按核心字有序B)链式方式存储,且元素按核心字有序C)顺序方式存储,且元素按核心字分块有序D)链式方式存储,且元素按核心字分块有序为使平均查找长度达到最小,当由核心字集合{05,11,21,25,37,40,41,62,84}构建二叉排序树时,第一种插入核心字应为()A) 5 B)37 C)41 D)62对核心字序列(56,23,78,92,88,67,19,34)进行增量为3一趟希尔排序成果为()。A)(19,23,56,34,78,67,88,92) B)23,56,78,66,88,92,19,34)C)(19,23,34,56,67,78,88,92) D)(19,23,67,56,34,78,92,88)用某种排序办法对核心字序列{35,84,21,47,15,27,68,25,20}进行排序时,序列变化状况如下:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则采用办法是()。A)直接选取排序 B)希尔排序 C)堆排序 D)迅速排序一组记录排序码为(46,79,56,38,40,84),则运用迅速排序办法,以第一种记录为基准得到第一次划提成果为()。 A)38,40,46,56,79,84 B)40,38,46,79,56,84 C)40,38,46,56,79,84 D)迅速排序在最坏状况下时间复杂度是()A)O(n2log2n) B)O(n2) C)O(nlog2n) D)O(log2n)下列排序算法中不稳定是()。A)直接选取排序 B)折半插入排序 C)冒泡排序 D)迅速排序对待排序元素序列进行划分,将其分为左、右两个子序列,再对两个子序列进行同样排序操作,直到子序列为空或只剩余一种元素为止。这样排序办法是()。A)直接选取排序 B)直接插入排序 C)迅速排序 D)冒泡排序将5个不同数据进行排序,至多需要比较()次。A)8B)9 C)10 D)25排序算法中,第一趟排序后,任一元素都不能拟定其最后位置算法是()。A)选取排序 B)迅速排序 C)冒泡排序 D)插入排序排序算法中,不稳定排序是()。A)直接插入排序 B)冒泡排序 C)堆排序 D)选取排序排序办法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中元素进行比较,将其放入已排序序列对的位置上办法,称为().A)希尔排序 B)冒泡排序C)插入排序D)选取排序从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)一端办法,称为()。A)希尔排序 B)归并排序C)插入排序D)选取排序对n个不同排序码进行冒泡排序,在下列哪种状况下比较次数最多。()A)从小到大排列好 B)从大到小排列好C)元素无序 D)元素基本有序对n个不同排序码进行冒泡排序,在元素无序状况下比较次数为()。A)n+1B)n C)n-1 D)n(n-1)/2迅速排序在下列哪种状况下最易发挥其长处。()A)被排序数据中具有各种相似排序码B)被排序数据已基本有序C)被排序数据完全无序D)被排序数据中最大值和最小值相差悬殊对有n个登记表作迅速排序,在最坏状况下,算法时间复杂度是()。A)O(n) B)O(n2) C)O(nlog2n) D)O(n3)若一组记录排序码为(46,79,56,38,40,84),则运用迅速排序办法,以第一种记录为基准得到一次划提成果为()。A)38,40,46,56,79,84B)40,38,46,79,56,84C)40,38,46,56,79,84 D)40,38,46,84,56,79下列核心字序列中,()是堆。A)16,72,31,23,94,53 B)94,23,31,72,16,53C)16,53,23,94,31,72 D)16,23,53,31,94,72堆是一种()排序。A)插入 B)选取 C)互换 D)归并堆形状是一棵()。A)二叉排序树B)满二叉树 C)完全二叉树D)平衡二叉树若一组记录排序码为(46,79,56,38,40,84),则运用堆排序办法建立初始堆为()。A)79,46,56,38,40,84 B)84,79,56,38,40,46C)84,79,56,46,40,38 D)84,56,79,40,46,38下述几种排序办法中,规定内存最大是()。A)插入排序 B)迅速排序 C)归并排序D)选取排序有一组数据(15,9,7,8,20,-1,7,4),用堆排序筛选办法建立初始堆为()。A)-1,4,8,9,20,7,15,7 B)-1,7,15,7,4,8,20,9C)-1,4,7,8,20,15,7,9 D)A,B,C均不对。51.下列四个序列中,哪一种是堆()。A)75,65,30,15,25,45,20,10 B)75,65,45,10,30,25,20,15C)75,45,65,30,15,25,20,10 D)75,45,65,10,25,30,20,15如下序列不是堆是()。A)(100,85,98,77,80,60,82,40,20,10,66) B)(100,98,85,82,80,77,66,60,40,20,10)C)(10,20,40,60,66,77,80,82,85,98,100) D)(100,85,40,77,80,60,66,98,82,10,20)迅速排序办法在()状况下最不利于发挥其长处。A)要排序数据量太大 B)要排序数据中具有各种相似值C)要排序数据个数为奇数 D)要排序数据已基本有序对核心码序列28,16,32,12,60,2,5,72迅速排序,从小到大一次划提成果为()。A)(2,5,12,16)26(60,32,72) B)(5,16,2,12)28(60,32,72)C)(2,16,12,5)28(60,32,72) D)(5,16,2,12)28(32,60,72)对下列核心字序列用迅速排序法进行排序时,速度最快情形是()。A){21,25,5,17,9,23,30} B){25,23,30,17,21,5,9}C){21,9,17,30,25,23,5} D){5,9,17,21,23,25,30}二、填空题数据构造是一门研究非数值计算程序设计问题中计算机操作对象以及它们之间关系和运算等学科。数据构造被形式地定义为(D,R),其中D是数据元素有限集合,R是D上关系有限集合。数据构造涉及数据逻辑构造、数据存储构造和数据运算这三个方面内容。数据构造按逻辑构造可分为两大类,它们分别是线性构造和非线性构造。线性构造中元素之间存在一对一关系,树形构造中元素之间存在一对多关系,图形构造中元素之间存在多对多关系。在线性构造中,第一种结点没有前驱结点,别的每个结点有且只有1个前驱结点;最后一种结点没有后续结点,别的每个结点有且只有1个后续结点。在树形构造中,树根结点没有前驱结点,别的每个结点有且只有1个前驱结点;叶子结点没有后续结点,别的每个结点后续结点数可以任意各种。在图形构造中,每个结点前驱结点数和后续结点数可以任意各种。数据存储构造可用四种基本存储办法表达,它们分别是顺序、链式、索引和散列。数据运算最惯用有5种,它们分别是插入、删除、修改、查找、排序。一种算法效率可分为时间效率和空间效率。对于给定n个元素,可以构造出逻辑构造有集合,线性表,树,图四种。顺序映象特点是借助元素在存储器中相对位置来表达数据元素之间逻辑关系。非顺序映象特点是借助是批示元素存储地址指针表达数据元素之间逻辑关系。任何一种算法设计取决于选定逻辑构造,而算法实现依赖于采用存储构造。数据类型是一组___________性质相似值集合以及定义在这个值集合上一组操作总称。数据对象是___________性质相似数据元素集合,是数据一种子集。如果操作不变化原逻辑构造“值”,而只是从中提取某些信息作为运算成果,则称该类运算为型运算。引用算法健壮特性是指做为一种好算法,当输入数据非法时,也能恰本地做出对的反映或进行相应解决,而不会产生某些莫名其妙输出成果。算法分析不是针对实际执行时间精准算出算法执行详细时间分析,而是针对算法中语句执行次数做出预计,从中得到算法执行时间信息。T(n)=O(f(n)),它表达随问题规模n增大算法执行时间增长率和f(n)增长率相似,称作算法渐进时间复杂度,简称时间复杂度。若算法执行时所需要辅助空间相对于输入数据量而言是个常数,则称这个算法为原地工作,辅助空间为O(1)。在带有头结点单链表中L中,第一种元素结点指针是。L->next在一种带头节点单循环链表中,p指向尾结点直接前驱,则指向头结点指针head可用p表达为head=。p->next->next设单链表结点构造为(data,next),next为指针域,已知指针px指向单链表中data为x结点,指针py指向data为y新结点,若将结点y插入结点x之后,则需要执行如下语句:py->next=px->next;px->next=py。对于栈操作数据原则是。后进先出设以数组A[m]存储循环队列元素,其头尾指针分别为front和rear,则当前队列中元素个数为。(rear-front+m)%m若已知一种栈入栈序列是1,2,3,4……n,其输出序列为p1,p2,p3,……pn,若p1==n,则pi为。n-i+1队列是被限定为只能在表一端进行插入运算,在表另一端进行删除运算线性表。普通程序在调用另一种程序时,都需要使用一种栈来保存被调用程序内分派局部变量。形式参数存储空间以及返回地址。栈下溢是指在___栈空_____时进行出栈操作。用P表达入栈操作,D表达出栈操作,若元素入栈顺序为1234,为了得到1342出栈顺序,相应P和D操作串为_______。PDPPDPDD在具备n个单元循环队列中,队满共有n-1个元素。队列是被限定为只能在表一端进行插入运算,在表另一端进行删除运算线性表。循环队列引入,目是为了克服_______假溢出。所谓稀疏矩阵指是_______非零元很少(t<<m*n)且分布没有规律。在稀疏矩阵表达所相应三元组线性表中,每个三元组元素按行为主序,列号为辅序顺序排列。二位数组Am×n按行优先顺序存储在内存中,元素a00地址为loc(a00),每个元素在内存中占d个字节,元素aij地址计算公式为loc(aij)=loc(a00)+(i*n+j)*d。树内个结点度最大值称为树度。一种二叉树第5层节点最多有16个。已知完全二叉树T第5层只有7个结点,则该树共有____11____个叶子结点。在一棵二叉树中,度为零结点个数为N0,度为2结点个数为N2,则有N0=______N2+1。假设用于通信电文由8个字母构成,其频率分别为7,19,2,6,32,3,27,10。设计哈夫曼编码,其中字母编码长度最大是5位。一棵具备257个结点完全二叉树,它深度为。9散列法存储基本思想是由核心字值决定数据存储地址。大多数排序算法均有两个基本操作:。比较和移动由于查找算法基本运算是核心字之间比较操作,因此可用平均查找长度来衡量查找算法性能。查找有静态查找和动态查找,当查找不成功时动态查找会将查找核心字插入在表中。顺序查找法中设立监视哨,可以起到防止越界作用。假设列表长度为n,那么查找第i个数据元素时需进行n-i+1次比较。假设查找每个数据元素概率相等,即Pi=1/n,则顺序查找算法平均查找长度为:ASL=(n+1)/2。折半查找法又称为二分法查找法,这种办法规定待查找列表必要是按核心字大小有序排列顺序表。假定将长度为n表提成b块,且每块含s个元素,则b=n/s。又假定表中每个元素查找概率相等,在有序表(12,24,36,48,60,72,84)中二分查找核心字72时所需进行核心字比较次数为2。折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素28,6,12,20比较大小。在各种查找办法中,平均查找长度与结点个数n无关查找办法是散列查找。当核心字集合很大时,核心字值不同元素也许会映象到哈希表同一地址上,即k1≠k2,但H(k1)=H(k2),这种现象称为冲突.在散列函数H(key)=keyMODp中,p应取素数。设哈希表长m=14,哈希函数H(key)=keyMOD11.表中已有4个结点;addr(15)=4,addr(38)=5,addr(61)=6,addr(84)=7,别的地址为空。如用二次探测再散列解决冲突,核心字为49结点地址是。9希尔排序是属于插入排序改进办法。给出一组核心字T=(20,4,34,5,16,33,18,29,2,40,7),规定从下到大进行排序,试给出迅速排序(选一种记录为枢纽)第一趟排序成果。7,4,2,85,16,18,20,,29,33,40,34大多数排序算法均有两个基本操作:比较和移动。在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置至少需比较次。6。在插入和选取排序中,若初始数据基本正序,则选用插入;若初始数据基本反序,则选用选取。在堆排序和迅速排序中,若初始记录接近正序或反序,则选用堆排序;若初始记录基本无序,则最佳选用迅速排序。对于n个记录集合进行冒泡排序,在最坏状况下所需要时间是O(n2)。若对其进行迅速排序,在最坏状况下所需要时间是O(n2)对于n个记录集合进行归并排序,所需要平均时间是O(nlog2n),所需要附加空间是O(n)。7.对于n个登记表进行2路归并排序,整个归并排序需进行┌log2n┐趟(遍)。8.设要将序列(Q,H,C,Y,P,A,M,S,R,D,F,X)中核心码按字母序升序重新排列,则:冒泡排序一趟扫描成果是HCQPAMSRDFXY;初始步长为4希尔(shell)排序一趟成果是PACSQHFXRDMY;二路归并排序一趟扫描成果是HQCYAPMSDRFX;迅速排序一趟扫描成果是FHCDPAMQRSYX;堆排序初始建堆成果是ADCRFQMSYPHX。9.在堆排序、迅速排序和归并排序中,若只从存储空间考虑,则应一方面选用办法,另一方面选用迅速排序办法,最后选用归并排序办法;若只从排序成果稳定性考虑,则应选用归并排序办法;若只从平均状况下最快考虑,则应选用堆排序、迅速排序和归并排序办法;若只从最坏状况下最快并且要节约内存考虑,则应选用堆排序办法。三、程序填空题如下程序功能是实现带附加头结点单链表数据结点逆序连接,请填空完善之。voidreverse(pointerh)/*h为附加头结点指针;*/{pointerp,q;p=h->next;h->next=NULL;while((1)________){q=p;p=p->next;q->next=h->next;h->next=(2)________;}}(1)p!=null∥链表未到尾就始终作(2)q∥将当前结点作为头结点后第一元素结点插入下列算法在顺序表L中依次存储着线性表中元素,在表中查找与e相等元素,若L.elem[i]=e,则找到该元素,并返回i+1,若找不到,则返回“-1”,请填空完善之。

int

Locate(SeqListL,inte){

i=0;

/*i为扫描计数器,初值为0,即从第一种元素开始比较*/

while((i<=L.last)&&(L.elem[i]!=e))

i++;

/*顺序扫描表,直到找到值为key元素,或扫描到表尾而没找到*/

if

(i<=L.last)

return(i+1);

/*若找到值为e元素,则返回其序号*/

else

return(-1);

/*若没找到,则返回空序号*/

}下列算法在顺序表L中第i个数据元素之前插入一种元素e。插入前表长n=L->last+1,i合法取值范畴是1≤i≤L->last+2,请填空完善之。

void

InsList(SeqList*L,inti,inte){intk;if((i<1)||(i>L->last+2))printf(“插入位置i值不合法”);

if(L->last>=maxsize-1)printf(“表已满无法插入”);for(k=L->last;k>=i-1;k--)

/*为插入元素而移动位置*/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论