数据结构第七章 复习题
数据结构-期末复习题及参考答案+-+第7章图
《数据结构》期末复习题及参考答案- 第7章图//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 注意:做复习题时,请结合阅读教材,钻研教材,参考课件////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////一、选择题1、以下数据结构中,哪种具有非线性结构?A.栈B.队列C.双向链表D.十字链表2、下面关于图的存储的叙述中正确的是()。
A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关。
B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关。
C.用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关。
D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关3、在图的邻接表存储结构上执行深度优先搜索遍历类似于二叉树上的()A.先根遍历B.中根遍历C.后根遍历D.按层次遍历4、图的广度优先遍历算法类似于树的()。
A. 中根遍历B. 先根遍历C. 后根遍历D. 按层次遍历5、设无向图的顶点个数为n,则该图最多有()条边。
A.n-1 B.n(n-1)/2 C.n(n+1)/2 D.06、设有n个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.n-1 B.n C.n+1 D.nlogn;7、一个含有n个顶点的非连通图,则():A.它的边一定不大于n-1 B.它的边一定不大于nC.它的边一定小于n-1 D.它的边一定大于08、要连通具有n个顶点的有向图,至少需要()条边。
《数据结构》吕云翔编著第7章排序习题解答
第七章排序课后习题解答一、单项选择题1.下列内部排序算法中:A.快速排序 B.直接插入排序C. 二路归并排序D. 简单选择排序E. 起泡排序F. 堆排序(1)其比较次数与序列初态无关的算法是()(2)不稳定的排序算法是()(3)在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,k<<n)的情况下,排序效率最高的算法是()(4)排序的平均时间复杂度为O(n•logn)的算法是()为O(n•n)的算法是()【解答】(1) DC (2)ADF (3)B (4)ACF BDE2.比较次数与排序的初始状态无关的排序方法是( )。
A.直接插入排序 B.起泡排序 C.快速排序 D.简单选择排序【解答】D3.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21 (2) 15 47 25 84 21(3) 15 21 25 84 47 (4) 15 21 25 47 84则采用的排序是 ( )。
A. 选择B. 冒泡C. 快速D. 插入【解答】A4.下列排序算法中( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。
A. 选择B. 冒泡C. 归并D. 堆【解答】C5.一组记录的关键码为(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. (40,38,46,84,56,79)【解答】C6.下列排序算法中,在待排序数据已有序时,花费时间反而最多的是( )排序。
A.冒泡 B. 希尔 C. 快速 D. 堆【解答】C7. 就平均性能而言,目前最好的内排序方法是( )排序法。
A. 冒泡B. 希尔插入C. 交换D. 快速【解答】 D8. 下列排序算法中,占用辅助空间最多的是:( )A. 归并排序B. 快速排序C. 希尔排序D. 堆排序【解答】 A9. 若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行()次比较。
数据结构第七章复习题
数据结构第七章复习题第7章排序一、选择题1.某内排序方法的稳定性是指( D )。
A.该排序算法不允许有相同的关键字记录B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( D )排序法是不稳定性排序法。
A. 插入B. 冒泡C. 二路归并D. 堆3.下列排序算法中,其中( D )是稳定的。
A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序6.若要求尽可能快地对序列进行稳定的排序,则应选(B)。
A.快速排序 B.归并排序 C.冒泡排序13.下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是。
( A ) A.选择排序法 B. 插入排序法 C. 快速排序法 D. 堆积排序法15.在下列排序算法中,哪一个算法的时间复杂度与初始排序无关( D )。
A.直接插入排序 B. 气泡排序 C. 快速排序 D. 直接选择排序22.下列排序算法中( B )不能保证每趟排序至少能将一个元素放到其最终的位置上。
A.快速排序B. shell排序C. 堆排序D.冒泡排序23.下列排序算法中( C )排序在一趟结束后不一定能选出一个元素放在其最终位置上。
A. 选择B. 冒泡C. 归并D. 堆27. 在下面的排序方法中,辅助空间为O(n)的是( D ) 。
A.希尔排序 B. 堆排序 C. 选择排序 D. 归并排序31. 就平均性能而言,目前最好的内排序方法是( D )排序法。
A. 冒泡B. 希尔插入C. 交换D. 快速35. 下列排序算法中,占用辅助空间最多的是:( A )A. 归并排序B. 快速排序C. 希尔排序D. 堆排序36.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( A)排序法。
A. 插入B. 选择C. 希尔D. 二路归并37. 在排序算法中,每次从未排序的记录中挑出最小(或最大)关键码字的记录,加入到已排序记录的末尾,该排序方法是( A )。
数据结构第7章习题答案
第7章 《图》习题参考答案一、单选题(每题1分,共16分)( C )1. 在一个图中,所有顶点的度数之和等于图的边数的倍。
A .1/2 B. 1 C. 2 D. 4 (B )2. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。
A .1/2 B. 1 C. 2 D. 4 ( B )3. 有8个结点的无向图最多有条边。
A .14 B. 28 C. 56 D. 112 ( C )4. 有8个结点的无向连通图最少有条边。
A .5 B. 6 C. 7 D. 8 ( C )5. 有8个结点的有向完全图有条边。
A .14 B. 28 C. 56 D. 112 (B )6. 用邻接表表示图进行广度优先遍历时,通常是采用来实现算法的。
A .栈 B. 队列 C. 树 D. 图 ( A )7. 用邻接表表示图进行深度优先遍历时,通常是采用来实现算法的。
A .栈 B. 队列 C. 树 D. 图( C )8. 已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是( D )9. 已知图的邻接矩阵同上题8,根据算法,则从顶点0出发,按深度优先遍历的结点序列是A . 0 2 4 3 1 5 6 B. 0 1 3 5 6 4 2 C. 0 4 2 3 1 6 5 D. 0 1 23465 ( D )10. 已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是( A )11. 已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是A .0 2 4 3 1 5 6B. 0 1 3 6 5 4 2C. 0 1 3 4 2 5 6D. 0 3 6 1 5 4 2⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡0100011101100001011010110011001000110010011011110A .0 1 3 2 B. 0 2 3 1 C. 0 3 2 1 D. 0 1 2 3A.0 3 2 1 B. 0 1 2 3C. 0 1 3 2D. 0 3 1 2(A)12. 深度优先遍历类似于二叉树的A.先序遍历 B. 中序遍历 C. 后序遍历 D. 层次遍历(D)13. 广度优先遍历类似于二叉树的A.先序遍历 B. 中序遍历 C. 后序遍历 D. 层次遍历(A)14. 任何一个无向连通图的最小生成树A.只有一棵 B. 一棵或多棵 C. 一定有多棵 D. 可能不存在(注,生成树不唯一,但最小生成树唯一,即边权之和或树权最小的情况唯一)二、填空题(每空1分,共20分)1. 图有邻接矩阵、邻接表等存储结构,遍历图有深度优先遍历、广度优先遍历等方法。
《数据结构(C语言版 第2版)》(严蔚敏 著)第七章练习题答案
《数据结构(C语言版第2版)》(严蔚敏著)第七章练习题答案第7章查找1.选择题(1)对n个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为()。
A.(n-1)/2B.n/2C.(n+1)/2D.n答案:C解释:总查找次数N=1+2+3+…+n=n(n+1)/2,则平均查找长度为N/n=(n+1)/2。
(2)适用于折半查找的表的存储方式及元素排列要求为()。
A.链接方式存储,元素无序B.链接方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序答案:D解释:折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。
(3)如果要求一个线性表既能较快的查找,又能适应动态变化的要求,最好采用()查找法。
A.顺序查找B.折半查找C.分块查找D.哈希查找答案:C解释:分块查找的优点是:在表中插入和删除数据元素时,只要找到该元素对应的块,就可以在该块内进行插入和删除运算。
由于块内是无序的,故插入和删除比较容易,无需进行大量移动。
如果线性表既要快速查找又经常动态变化,则可采用分块查找。
(4)折半查找有序表(4,6,10,12,20,30,50,70,88,100)。
若查找表中元素58,则它将依次与表中()比较大小,查找结果是失败。
A.20,70,30,50B.30,88,70,50C.20,50D.30,88,50答案:A解释:表中共10个元素,第一次取⎣(1+10)/2⎦=5,与第五个元素20比较,58大于20,再取⎣(6+10)/2⎦=8,与第八个元素70比较,依次类推再与30、50比较,最终查找失败。
(5)对22个记录的有序表作折半查找,当查找失败时,至少需要比较()次关键字。
A.3B.4C.5D.6答案:B解释:22个记录的有序表,其折半查找的判定树深度为⎣log222⎦+1=5,且该判定树不是满二叉树,即查找失败时至多比较5次,至少比较4次。
(6)折半搜索与二叉排序树的时间性能()。
数据结构第七章参考答案
习题71.填空题(1)由10000个结点构成的二叉排序树,在等概率查找的条件下,查找成功时的平均查找长度的最大值可能达到(___________)。
答案:5000.5(2)长度为11的有序序列:1,12,13,24,35,36,47,58,59,69,71进行等概率查找,如果采用顺序查找,则平均查找长度为(___________),如果采用二分查找,则平均查找长度为(___________),如果采用哈希查找,哈希表长为15,哈希函数为H(key)=key%13,采用线性探测解决地址冲突,即d i=(H(key)+i)%15,则平均查找长度为(保留1位小数)(___________)。
答案:6,3,1.6(3)在折半查找中,查找终止的条件为(___________)。
答案:找到匹配元素或者low>high?(4)某索引顺序表共有元素275个,平均分成5块。
若先对索引表采用顺序查找,再对块元素进行顺序查找,则等概率情况下,分块查找成功的平均查找长度是(___________)。
答案:31(5)高度为8的平衡二叉树的结点数至少是(___________)。
答案: 54 计算公式:F(n)=F(n-1)+F(n-2)+1(6)对于这个序列{25,43,62,31,48,56},采用的散列函数为H(k)=k%7,则元素48的同义词是(___________)。
答案:62(7)在各种查找方法中,平均查找长度与结点个数无关的查找方法是(___________)。
答案:散列查找(8)一个按元素值排好的顺序表(长度大于2),分别用顺序查找和折半查找与给定值相等的元素,平均比较次数分别是s和b,在查找成功的情况下,s和b的关系是(___________);在查找不成功的情况下,s和b的关系是(___________)。
答案:(1)(2s-1)b=2s([log2(2s-1)]+1)-2[log2(2s-1)]+1+1(2)分两种情况考虑,见解答。
数据结构(C语言版)同步训练答案 第7章.docx
第七章一、填空题1、n(n-l)/22、极大连通子图3、深度优先广度优先4、普里姆方法克鲁斯卡尔方法二、选择题1、B 2、C 3、C 4、A 5、B三、应用题1、「0 1 1 L10 0 1.10 0 1.L I I 1 0;四、算法设计题1、#include "stdio.h"include "stdlib.h"typedef struct node 〃邻接表结点结构定义{int adj vex; struct node *next;} Anode;(ypedef struct〃顶点数组元素结点结构定义char vertex;Anode *link;} Vnode;typedef struct{Vnode adjlistflOOl;int vexnuni,arcnuni;} Adjgraph;Adj graph creat(){Anode *p;int i,s,d;Adjgraph ag;printfC请输入顶点和边的数量:,scanf("%d,%d",&ag.vexnum,&ag.arcnum); getcharO;//吸收回车符for(i=0;i<ag.vexnum;i++)〃输入顶点信息{printfC*请输入点的值:,scanf("%c",&ag.adjlist[i]. vertex); getchar();ag.adjlist[i].link=NULL;}for(i=0;i<ag.arcnuni;i++){printfC*请输入边的序号:,scanf("%d,%d”,&s,&d);//前插法p=(Anodc *)malloc(sizcof(Anode)); p->adjvex=d;p->next=ag.adjlist[s].link;ag.adjlist[s].link=p;p=(Anode *)malloc(sizeof(Anode)); p->adjvex=s;p->next=ag.adjlisl[d].link; ag.adjlist[d].link=p;}return ag;}int count(Adjgraph ag){Anode *p;int sum=0,n,i;for(i=0;ivag.vexnum;i++){n=0;p=ag.adjlist[i].link; whilc(p!=NULL) {n++; p=p->next;}if(n= =2)sum++;}return sum;Imain()(Adjgraph ag;int sum;ag=crcat();sum=count(ag);printf("%d",suni);I2、#include "stdio.h"#include "stdlib.h"int visitcd[ 10];typedef struct{char vexsflO];int edges[10][10];int n,e;〃分别代表图的顶点数和边数}MGraph;//结构体类型void CreateMGraph(MGraph *G){int i,j,k;scanf("%d,%d".&G->n,&G->e); 〃输入顶点数和边数getchar();for(i=0;ivG->n;i++)G->vexs[i]=getchar(); // 输入顶点信息for(i=0;i<G->n;i++)for(j=0;j<G->n;j++)G->cdgesLiJUJ=O; 〃邻接短阵初始化printfC*请输入一对顶点的序号:\n"); for(k=0;kvG->e;k++)scanf(”%d,%d”,&i,&j); 〃输入边的-对顶点序号G->edges[i]Ij]=l;G->edges[j][i]=l;void dfs(MGraph *Gint i)(intj;prinlf(”%c”,G->vexs[i]);visited|i]=l;for(j=0;j<G->n;j++)i f(G->edges[i][j]==l &&visited[j]==O) dfs(Gj);Ivoid dfstraverse(MGraph *G){int i;for(i=0;i<G->n;i++)visited[i]=O;〃初始化都未曾访问过for(i=0;i<G->n;i++)if(visitedfi]==O)// 未曾访问过dfs(Gi);}main(){MGraph *G,ag;G=&ag;CreaieMGraph(G);dfstraverse(G);。
数据结构第七章的习题答案
数据结构第七章的习题答案数据结构第七章的习题答案数据结构是计算机科学中非常重要的一门学科,它研究如何组织和管理数据以便高效地访问和操作。
第七章是数据结构课程中的一个关键章节,它涵盖了树和二叉树这两个重要的数据结构。
本文将为读者提供第七章习题的详细解答,帮助读者更好地理解和掌握这些概念。
1. 问题:给定一个二叉树,如何判断它是否是二叉搜索树?解答:要判断一个二叉树是否是二叉搜索树,我们可以使用中序遍历的方法。
中序遍历会按照从小到大的顺序访问二叉树中的节点。
所以,如果一个二叉树是二叉搜索树,那么它的中序遍历结果应该是一个有序的序列。
具体实现时,我们可以使用递归或者迭代的方式进行中序遍历,并将遍历的结果保存在一个数组中。
然后,我们检查这个数组是否是有序的即可判断二叉树是否是二叉搜索树。
2. 问题:给定一个二叉树,如何找到它的最大深度?解答:要找到一个二叉树的最大深度,我们可以使用递归的方式。
对于每个节点,它的最大深度等于其左子树和右子树中的最大深度加1。
递归的终止条件是节点为空,此时深度为0。
具体实现时,我们可以定义一个递归函数,该函数接收一个节点作为参数,并返回以该节点为根节点的子树的最大深度。
在递归函数中,我们先判断节点是否为空,如果为空则返回0;否则,我们分别计算左子树和右子树的最大深度,然后取两者中的较大值加1作为当前节点的最大深度。
3. 问题:给定一个二叉树,如何判断它是否是平衡二叉树?解答:要判断一个二叉树是否是平衡二叉树,我们可以使用递归的方式。
对于每个节点,我们分别计算其左子树和右子树的高度差,如果高度差大于1,则该二叉树不是平衡二叉树。
具体实现时,我们可以定义一个递归函数,该函数接收一个节点作为参数,并返回以该节点为根节点的子树的高度。
在递归函数中,我们先判断节点是否为空,如果为空则返回0;否则,我们分别计算左子树和右子树的高度,然后取两者中的较大值加1作为当前节点的高度。
最后,我们判断左子树和右子树的高度差是否大于1,如果大于1,则该二叉树不是平衡二叉树。
数据结构第七章图练习及答案
一、选择题1、有6个结点的有向完全图有()条弧。
A、36B、28C、30D、152、用邻接表表示图进行广度优先遍历时,通常采用()来实现算法。
A、栈B、队列C、树D、图3、用邻接表表示图进行深度优先遍历时,通常采用()来实现算法。
A、栈B、队列C、树D、图4、任何一个无向连通图的最小生成树()A、只有一棵B、一棵或多棵C、一定有多棵D、可能不存在5、在一个图中,所有顶点的度数之和等于所有边数和的()倍。
A、1/2B、1C、2D、46、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。
A、1/2B、1C、2D、47、一个有n个顶点的无向图最多有()条边。
A、nB、n(n-1)C、n(n-1)/2D、2n8、具有5个顶点的无向完全图有()条边。
A、6B、8C、10D、209、在一个具有n个顶点的无向图中,要连通全部顶点至少需要()条边。
A、nB、n+1C、n-1D、n/210、对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是()A、(n+1)*(n-1)B、(n-1)*(n-1)C、nD、n*n11、对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为(),所有邻接表中的结点总数是()(1)A、n B、n+1 C、n-1 D、n+e(2)A、e/2 B、e C、2e D、n+e12、采用邻接表存储的图的深度优先遍历算法类似于二叉树的()A、先序遍历B、中序遍历C、后序遍历D、按层遍历13、采用邻接表存储的图的广度优先遍历算法类似于二叉树的()A、先序遍历B、中序遍历C、后序遍历D、按层遍历14、判定一个有向图是否存在回路,除了利用拓扑排序方法外,还可以利用()A、求关键路径的方法B、求最短路径的方法C、宽度优先遍历算法D、深度优先遍历算法15、关键路径是AOE网中的()A、从源点到汇点的最长路径B、从源点到汇点的最短路径C、最短的回路D、活动的最早开始时间与最迟发生时间相等二、填空题1、有向图G用邻接矩阵存储,则其第i行的所有元素之和等于顶点i的(出度)。
《数据结构》习题汇编07-第七章-图-试题
《数据结构》习题汇编07-第七章-图-试题第七章图试题一、单项选择题1.在无向图中定义顶点的度为与它相关联的()的数目。
A. 顶点B. 边C. 权D. 权值2.在无向图中定义顶点 v i与v j之间的路径为从v i到达v j的一个()。
A. 顶点序列B. 边序列C. 权值总和D.边的条数3.图的简单路径是指()不重复的路径。
A. 权值B. 顶点C. 边D. 边与顶点均4.设无向图的顶点个数为n,则该图最多有()条边。
A. n-1B. n(n-1)/2C.n(n+1)/2 D. n(n-1)5.n个顶点的连通图至少有()条边。
A. n-1B. nC. n+1D. 06.在一个无向图中,所有顶点的度数之和等于所有边数的 ( ) 倍。
A. 3B. 2C. 1D.1/27.若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个 ( )。
A. 上三角矩阵B. 稀疏矩阵C. 对角矩阵D. 对称矩阵8.图的深度优先搜索类似于树的()次序遍历。
A. 先根B. 中根C. 后根D. 层次9.图的广度优先搜索类似于树的()次序遍历。
A. 先根B. 中根C. 后根D. 层次10.在用Kruskal算法求解带权连通图的最小(代价)生成树时,通常采用一个()辅助结构,判断一条边的两个端点是否在同一个连通分量上。
A. 位向量B. 堆C. 并查集D. 生成树顶点集合11.在用Kruskal算法求解带权连通图的最小(代价)生成树时,选择权值最小的边的原则是该边不能在图中构成()。
A. 重边B. 有向环C. 回路D. 权值重复的边12.在用Dijkstra算法求解带权有向图的最短路径问题时,要求图中每条边所带的权值必须是()。
A. 非零B. 非整C. 非负D. 非正13.在一个连通图中进行深度优先搜索得到一棵深度优先生成树,树根结点是关节点的充要条件是它至少有()子女。
A. 1B. 2C. 3D. 014.设有向图有n个顶点和e条边,采用邻接表作为其存储表示,在进行拓扑排序时,总的计算时间为()。
数据结构第七章习题答案
第七章图
1.下面是一个图的邻接表结构,画出此图,并根据此存储结构和深度优先搜索
算法写出从C开始的深度优先搜索序列。
0A13^
1B35^
2C30^
3D4^
4E^
5F4^
【解答】
A B F
C D E
C开始的深度优先搜索序列:CDEABF(唯一的结果)
2.假定要在某县所辖六个镇(含县城)之间修公路,若镇I和镇J之间有可能通
过道路连接,则Wij表示这条路的长度。
要求每个镇都通公路且所修公路总里程
最短,那么应选择哪些线路来修。
I11112233445 J23564546566 W ij1239102626474
(1).画出该图。
(2).用C语言描述该图的数组表示法存储结构,并注明你所使用变量的实际含义。
(3).图示你所定义的数据结构。
(4).标识出你选择的线路。
【解答】
(1)
(2)
#define MAX 6
char vexs[MAX];
出该图的所有强连通分量。
(2).在图中删除弧<2,1>,然后写出从顶点1开始的拓扑有序序列。
【解答】
(1) 共4个强连通分量:
(2) 1,3,2,6,5,4
5 4
6 1 3 2
4
15 10
2
15 20 30 4 10
10。
数据结构第7章-答案
一、单选题C01、在一个图中,所有顶点的度数之和等于图的边数的倍。
A)1/2 B)1 C)2 D)4B02、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。
A)1/2 B)1 C)2 D)4B03、有8个结点的无向图最多有条边。
A)14 B)28 C)56 D)112C04、有8个结点的无向连通图最少有条边。
A)5 B)6 C)7 D)8C05、有8个结点的有向完全图有条边。
A)14 B)28 C)56 D)112B06、用邻接表表示图进行广度优先遍历时,通常是采用来实现算法的。
A)栈 B)队列 C)树 D)图A07、用邻接表表示图进行深度优先遍历时,通常是采用来实现算法的。
A)栈 B)队列 C)树 D)图A08、一个含n个顶点和e条弧的有向图以邻接矩阵表示法为存储结构,则计算该有向图中某个顶点出度的时间复杂度为。
A)O(n) B)O(e) C)O(n+e) D)O(n2)C09、已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是。
A)0 2 4 3 1 5 6 B)0 1 3 6 5 4 2 C)0 1 3 4 2 5 6 D)0 3 6 1 5 4 2B10、已知图的邻接矩阵同上题,根据算法,则从顶点0出发,按广度优先遍历的结点序列是。
A)0 2 4 3 6 5 1 B)0 1 2 3 4 6 5 C)0 4 2 3 1 5 6 D)0 1 3 4 2 5 6D11、已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是。
A)0 1 3 2 B)0 2 3 1 C)0 3 2 1 D)0 1 2 3A12、已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是。
A)0 3 2 1 B)0 1 2 3 C)0 1 3 2 D)0 3 1 2A13、图的深度优先遍历类似于二叉树的。
A)先序遍历 B)中序遍历 C)后序遍历 D)层次遍历D14、图的广度优先遍历类似于二叉树的。
数据结构第7章复习题
ab edcf第七章图一、选择题1.图中有关路径的定义是()。
A.由顶点和相邻顶点序偶构成的边所形成的序列 B.由不同顶点所形成的序列C.由不同边所形成的序列 D.上述定义都不是2.设无向图的顶点个数为n,则该图最多有()条边。
A.n-1 B.n(n-1)/2 C. n(n+1)/2 D.0 E.n23.一个n个顶点的连通无向图,其边的个数至少为()。
A.n-1 B.n C.n+1 D.nlogn;4.n个结点的完全有向图含有边的数目()。
A.n*n B.n(n+1) C.n/2 D.n*(n-l)5.在一个无向图中,所有顶点的度数之和等于所有边数()倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的()倍。
A.1/2 B.2 C.1 D.46.下面结构中最适于表示稀疏无向图的是(),适于表示稀疏有向图的是()。
A.邻接矩阵 B.逆邻接表 C.邻接多重表 D.十字链表 E.邻接表7.下列哪一种图的邻接矩阵是对称矩阵?()A.有向图 B.无向图 C.AOV网 D.AOE网8. 设如左图所示,在下面的5个序列中,符合深度优先遍历的序列有多少?()a eb d fc a c fde b a e df c b a e fd c b aef d b cA.5个 B.4个 C.3个 D.2个9.下面哪一方法可以判断出一个有向图是否有环(回路):A.深度优先遍历 B. 拓扑排序 C. 求最短路径 D. 求关键路径10. 下面是求连通网的最小生成树的prim算法:集合VT,ET分别放顶点和边,初始为( 1 ),下面步骤重复n-1次: a:( 2 );b:( 3 );最后:( 4 )。
(1).A.VT,ET为空 B.VT为所有顶点,ET为空C.VT为网中任意一点,ET为空 D.VT为空,ET为网中所有边(2).A. 选i属于VT,j不属于VT,且(i,j)上的权最小B.选i属于VT,j不属于VT,且(i,j)上的权最大C.选i不属于VT,j不属于VT,且(i,j)上的权最小D.选i不属于VT,j不属于VT,且(i,j)上的权最大(3).A.顶点i加入VT,(i,j)加入ET B. 顶点j加入VT,(i,j)加入ET C. 顶点j加入VT,(i,j)从ET中删去 D.顶点i,j加入VT,(i,j)加入ET(4).A.ET 中为最小生成树 B.不在ET中的边构成最小生成树 C.ET中有n-1条边时为生成树,否则无解 D.ET中无回路时,为生成树,否则无解11. (1). 求从指定源点到其余各顶点的迪杰斯特拉(Dijkstra)最短路径算法中弧上权不能为负的原因是在实际应用中无意义;(2). 利用Dijkstra求每一对不同顶点之间的最短路径的算法时间是O(n3) ;(图用邻接矩阵表示)(3). Floyd求每对不同顶点对的算法中允许弧上的权为负,但不能有权和为负的回路。
数据结构复习题-第7章答案2014-6-16
第7章图一、选择题(每小题1分,共10分)1.一个n个顶点的连通无向图,其边的个数至少为( C )。
A.n+lB.nC.n-lD.2n2.下列哪一种图的邻接矩阵是对称矩阵( B )。
A.有向图B.无向图C.AOV网D.AOE网3.为解决计算机和打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是( B )。
A.栈B.队列C.树D.图4.设无向图的顶点个数为n,则该图最多有( C )条边。
A. n-1B. n(n-1)/2C. n(n+1)/2D. 2n5.无向图G=(V,E),其中:V={a,b,c,d,e,f}, E={(a,b),(a,e),(a,c),(b,e),(c,f), (f,d),(e,d)},由顶点a开始对该图进行深度优先遍历,得到的顶点序列正确的是( D )。
A. a,b,e,c,d,fB. a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b6.用邻接表表示图进行广度优先遍历时,通常是采用( B )来实现算法的。
A.栈B.队列C.树D.图7.以下数据结构中,哪一个是线性结构( D )。
A.广义表B.二叉树C.图D.栈8.下面哪一方法可以判断出一个有向图是否有环(回路)( B )。
A.最小生成树B.拓扑排序C.求最短路径D.求关键路径9.在一个图中,所有顶点的度数之和等于图的边数的( C )倍。
A. 1/2B. 1C. 2D. 410.在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( B )倍。
A. 1/2B. 1C. 2D. 411.有8个顶点无向图最多有( B )条边。
A. 14B. 28C. 56D. 11212.有8个顶点无向连通图最少有( C )条边。
A. 5B. 6C. 7D. 813.有8个顶点有向完全图有( C )条边。
A. 14B. 28C. 56D. 11214.下列说法不正确的是( A )。
(完整word版)数据结构 第七章图:习题
0 10 ∞ ∞
15 0 6 ∞
3 ∞ 0 4
∞ 8 2 0
(2)采用弗洛伊德算法求最短路径的过程如下:
7.对于有向无环图,
(1)叙述求拓扑有序序列的步骤。
(2)对于题图7-6所示的有向图,写出它的4个不同的拓扑有序序列。
【解答】(1)参见7.6节的介绍。
(2)它的4个不同的拓扑有序序列是:12345678,12354678,12347856,12347568。
(6)在V-S中找出最近的顶点5,加入S中,即s口={l,3,2,6,4,5}。此时S中包含了图的所有顶点,算法结束。最终dist[]={0,19,15,29,29,25),path[]={1,3,l,6,2, 3}。
由此得到:
从顶点1到顶点2的最短路径长度为:19 最短路径为:2<-3<-1
从顶点l到顶点3的最短路径长度为:15 最短路径为:3<-1
dist[4]=min{dist[4], dist[6]+cost[6][4])=min{∞..,25+4}=29,
则有dist[]={0, 19, 15, 29, 29, 25}, path[]={l,3,1,6,2,3}。
(5)在V-S中找出最近的顶点4,加入S中,即s[]:{l,3,2,6,4},并重新计算顶点l到达顶点5的距离,此时不需要修改dist值,则有dist[]={0,19,15,29,29,25),path[]={l,3, l,6,2, 3}。
(1)有n个顶点的无向连通图最多需要多少条边?最少需要多少条边?
(2)表示一个具有1000个顶点、1000条边的无向图的邻接矩阵有多少个矩阵元素?有多少非零元素?是否为稀疏矩阵?
数据结构课后习题第七章
一、选择题1.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1,则T中的叶结点的个数为()。
A.5B.6C.7D.82. 设森林F中有三棵树,第一、第二、第三棵树的结点个数分别为M1,M2和M3。
与森林F对应的二叉树根结点的右子树上的结点个数为()。
A.M1B.M1+M2C.M3D.M2+M33.将一棵树T转换为孩子—兄弟链表表示的二叉树H,则T的后跟序遍历是H的()。
A.前序遍历B.中序遍历C.后序遍历4. 设F是一个森林,B是由F变换得的二叉树。
若F中有n个非终端顶点,则B中右指针域为空的结点有()。
A.n-1B.nC.n+1D.n+25.如果2T是由有序树T转换而来的二叉树,那么T中结点的后序遍历序列就是T的()遍历序列。
2A.先序B.中序C.后序D.层次序6. 在一颗度为4的树T 中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T中叶结点的个数是()。
A.41B.42C.82D.122二、判断题1.树形结构中元素之间存在一对多个的关系.()。
2.将一棵树转成二叉树,根结点没有左子树()。
3.树与二叉树是两种不同的树形结构。
()4.对树定义中序遍历和对森林定义后序遍历都无意义()。
5.由树的先序遍历序列和后序遍历序列可以唯一确定该树()。
三、填空题1.树在计算机内的表示方式有(),(),()。
2.已知一棵树度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树有()个叶子结点。
3.每一棵树都能唯一的转换为它所对应的二叉树。
若已知一颗二叉树的前序遍历序列是BEFCGDH,中序遍历序列是FEBGCHD,则它的后序遍历序列是()。
设上述二叉树是由某棵树转换而成,则该树的先序遍历序列是()。
4. 先序遍历森林正好等同于按()遍历对应的二叉树,后序遍历森林正好等同于按()遍历对应的二叉树。
5.利用树的孩子兄弟表示法存储,可以将一棵树转换为()。
数据结构答案第7章
第7 章查找技术1970-01-01第7 章查找技术课后习题讲解1. 填空题⑴顺序查找技术适合于存储结构为()的线性表,而折半查找技术适用于存储结构为()的线性表,并且表中的元素必须是()。
【解答】顺序存储和链接存储,顺序存储,按关键码有序⑵设有一个已按各元素值排好序的线性表,长度为125,用折半查找与给定值相等的元素,若查找成功,则至少需要比较()次,至多需比较()次。
【解答】1,7【分析】在折半查找判定树中,查找成功的情况下,和根结点的比较次数最少,为1次,最多不超过判定树的深度。
⑶对于数列{25,30,8,5,1,27,24,10,20,21,9,28,7,13,15},假定每个结点的查找概率相同,若用顺序存储结构组织该数列,则查找一个数的平均比较次数为()。
若按二叉排序树组织该数列,则查找一个数的平均比较次数为()。
【解答】8,59/15【分析】根据数列将二叉排序树画出,将二叉排序树中查找每个结点的比较次数之和除以数列中的元素个数,即为二叉排序树的平均查找长度。
⑷长度为20的有序表采用折半查找,共有()个元素的查找长度为3。
【解答】4【分析】在折半查找判定树中,第3层共有4个结点。
⑸假定一个数列{25,43,62,31,48,56},采用的散列函数为H(k)=k mod 7,则元素48的同义词是()。
【解答】62【分析】H(48)= H(62)=6⑹在散列技术中,处理冲突的两种主要方法是()和()。
【解答】开放定址法,拉链法⑺在各种查找方法中,平均查找长度与结点个数无关的查找方法是()。
【解答】散列查找【分析】散列表的平均查找长度是装填因子的函数,而不是记录个数n的函数。
⑻与其他方法相比,散列查找法的特点是()。
【解答】通过关键码计算记录的存储地址,并进行一定的比较2. 选择题⑴静态查找与动态查找的根本区别在于()。
A 它们的逻辑结构不一样B 施加在其上的操作不同C 所包含的数据元素的类型不一样D 存储实现不一样【解答】B【分析】静态查找不涉及插入和删除操作,而动态查找涉及插入和删除操作。
数据结构 第7章答案(已核 )
7.6习题一、名词解释(1)主关键字(2)平均查找长度(3)静态查找表(4)动态查找表(5)二叉查找树(6)哈希表二、填空题(1)静态查找表的存储结构主要采用顺序存储结构,如果需要,也可以采用链式存储结构,但当使用二分(折半)查找算法或(斐波那契数列)查找算法来查找时,要求查找表只能是顺序存储结构,并且查找表中的数据序列必须有序。
(2)通过中根序遍历一棵二叉查找树得到的数据序列必然是一个非降序(有序)序列。
(3)各种查找方法中,平均查找长度与结点个数n无关的查找方法是哈希查找。
*(4)如果对一个有序查找表SST进行折半查找,在最坏时要比较10次,那么对该查找表进行顺序查找时,在最坏时要比较210 -1 次。
解析:最坏情况要比较10次,说明树的高度是10。
而一棵深度为10的二叉树,最多有210 -1个结点。
*(5)深度为7的平衡二叉树至少有33 个结点。
解析:在节点最少的情况下,左右子树的高度差为1,则总节点数S(n)=S(n-1)+S(n-2)+1。
已知,初始值S(1) = 1,S(2) = 2,可以推出:S(3) = 4S(4) = 7S(5) = 12S(6) = 20S(7) = 33所以,高度为7的平制衡二百叉树最少结点数是33。
假设深度为n的平衡二叉树至少有F(n)个结点,那么F(n)满足F(n)=F(n-1)+F(n-2)+1。
三、简答题(1)请画出长度为8的有序查找表的折半查找判定树。
(2)折半查找的前提:顺序存储、查找表有序。
(3)已知关键字序列为{45,28,67,33,29,50},二叉排序树初始为空,要求:①画出按正向(从关键字45开始)顺序插入结点建立的二叉排序树。
②画出按反向(从关键字50开始)顺序插入结点建立的二叉排序树。
(4)二叉排序树的平均查找长度:与结点个数和树的形态有关。
(5)设哈希表的地址空间为0~6,哈希函数H(key)=key % 7。
请对关键字序列{32,13,49,18,22,38}按线性探测再散列处理冲突的方法构造哈希表。
数据结构试题和答案第7章ans
数据结构试题和答案第7章ans1.下面关于图的存储的叙述中正确的是( )。
A.用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B.用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C. 用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关D.用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关答案:C2.对于具有e条边的无向图,它的邻接表中有 ( ) 个边结点。
A:e-1B:eC:2(e-1)D:2e答案:D,(vi,vj)以vi作为头结点保存一次,以vj作为头结点保存一次。
3.图的深度优先搜索类似于树的( A )次序遍历。
A:先序B:中序C:后序D:层次4.设无向图的顶点个数为n,则该图最多有()条边。
A: n-1 B: n(n-1)/2C: n(n+1)/2 D: n(n-1)答案:最多边时:完全图。
选B完全有向图: n(n-1)5.对于有向图,其邻接矩阵表示比邻接表表示更易于( )。
A: 求一个顶点的度B: 求一个顶点的邻接点C: 进行图的深度优先遍历D: 进行图的广度优先遍历答案:B6.与邻接矩阵相比,邻接表更适合于存储( )。
A: 无向图B连通图C稀疏图D稠密图答案:C7.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为()A.图中每个顶点的入度B.图中每个顶点的出度C.图中弧的条数D.图中连通分量的数目答案:A8.设无向图的顶点个数为n,则该图最多有()条边。
A.n-1 B.n(n-1)/2 C.n(n+1)/2 D.0 E.n29.一个n个顶点的连通无向图,其边的个数至少为()。
A.n-1 B.n C.n+1 D.nlogn;答案:极小连通图,A10.n个结点的完全有向图含有边的数目()。
A.n*n B.n(n+1)C.n/2 D.n*(n-l)11.在一个无向图中,所有顶点的度数之和等于所有边数(B )倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的( C )倍。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章排序一、选择题1.某内排序方法的稳定性是指( D )。
A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( D )排序法是不稳定性排序法。
A. 插入B. 冒泡C. 二路归并D. 堆3.下列排序算法中,其中( D )是稳定的。
A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序6.若要求尽可能快地对序列进行稳定的排序,则应选(B)。
A.快速排序 B.归并排序 C.冒泡排序13.下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是。
( A ) A.选择排序法 B. 插入排序法 C. 快速排序法 D. 堆积排序法15.在下列排序算法中,哪一个算法的时间复杂度与初始排序无关( D )。
A.直接插入排序 B. 气泡排序 C. 快速排序 D. 直接选择排序22.下列排序算法中( B )不能保证每趟排序至少能将一个元素放到其最终的位置上。
A.快速排序B. shell排序C. 堆排序D.冒泡排序23.下列排序算法中( C )排序在一趟结束后不一定能选出一个元素放在其最终位置上。
A. 选择B. 冒泡C. 归并D. 堆27. 在下面的排序方法中,辅助空间为O(n)的是( D ) 。
A.希尔排序 B. 堆排序 C. 选择排序 D. 归并排序31. 就平均性能而言,目前最好的内排序方法是( D )排序法。
A. 冒泡B. 希尔插入C. 交换D. 快速35. 下列排序算法中,占用辅助空间最多的是:( A )A. 归并排序B. 快速排序C. 希尔排序D. 堆排序36.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( A)排序法。
A. 插入B. 选择C. 希尔D. 二路归并37. 在排序算法中,每次从未排序的记录中挑出最小(或最大)关键码字的记录,加入到已排序记录的末尾,该排序方法是( A )。
A. 选择B. 冒泡C. 插入D. 堆38.用直接插入排序方法对下面四个序列进行排序(由小到大),元素比较次数最少的是( C )。
A. 94,32,40,90,80,46,21,69 B. 32,40,21,46,69,94,90,80C. 21,32,46,40,80,69,90,94 D. 90,69,80,46,21,32,94,4039.直接插入排序在最好情况下的时间复杂度为( B )A. O(logn) B. O(n) C. O(n*logn) D. O(n2)42. 对序列{15,9,7,8,20,-1,4,} 用希尔排序方法排序,经一趟后序列变为{15,-l,4,8,20,9,7}则该次采用的增量是 ( B )A. lB. 4C. 3D. 256. 归并排序中,归并的趟数是( B )。
A.O(n) B.O(logn) C.O(nlogn) D.O(n*n) 58.就排序算法所用的辅助空间而言,堆排序,快速排序,归并排序的关系是( A )A.堆排序〈快速排序〈归并排序B.堆排序〈归并排序〈快速排序C.堆排序〉归并排序〉快速排序D.堆排序 > 快速排序 > 归并排序E.以上答案都不对59.排序方法有许多种,(1)法从未排序的序列中依次取出元素,与已排序序列(初始时为空)中的元素作比较,将其放入已排序序列的正确位置上;(2)法从未排序的序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端;交换排序方法是对序列中的元素进行一系列比较,当被比较的两元素逆序时,进行交换;(3)和(4)是基于这类方法的两种排序方法,而(4)是比(3)效率更高的方法;(5)法是基于选择排序的一种排序方法,是完全二叉树结构的一个重要应用。
CADBG(1)--(5): A.选择排序 B.快速排序 C.插入排序 D.起泡排序E.归并排序 F.shell排序 G.堆排序 H.基数排序二、填空题1.若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的__比较____和记录的___移动__。
2. 外排序的基本操作过程是__生成有序归并段_____和_归并______。
3. 属于不稳定排序的有_希尔排序、简单选择排序、快速排序、堆排序_________。
4.分别采用堆排序,快速排序,冒泡排序和归并排序,对初态为有序的表,则最省时间的是__冒泡___算法,最费时间的是___快速___算法。
8. 设用希尔排序对数组{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的步长(也称增量序列)依次是4,2,1则排序需______3____趟,写出第一趟结束后,数组中数据的排列次序_ (10,7,-9,0,47,23,1,8,98,36)________。
9.从平均时间性能而言,____快速______排序最佳。
11.快速排序在_每次划分能得到两个等长的子序列____的情况下最易发挥其长处。
三、应用题2. 快排序、堆排序、合并排序、Shell排序中哪种排序平均比较次数最少,哪种排序占用空间最多,哪几种排序算法是不稳定的?平均比较次数最少: 快速排序; 占用空间最多: 归并排序; 不稳定排序算法:快速排序、堆排序、希尔排序。
3.算法模拟设待排序的记录共7个,排序码分别为8,3,2,5,9,1,6。
(1) 用直接插入排序。
试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按递减顺序排序。
(2) 用直接选择排序。
试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按递减顺序排序。
(3) 直接插入排序算法和直接选择排序算法的稳定性如何?(1)直接插入排序第一趟 (3)[8,3],2,5,9,1,6第二趟 (2)[8,3,2],5,9,1,6第三趟 (5)[8,5,3,2],9,1,6第四趟 (9)[9,8,5,3,2],1,6第五趟 (1)[9,8,5,3,2,1],6第六趟 (6)[9,8,6,5,3,2,1](2)直接选择排序(第六趟后仅剩一个元素,是最小的,直接选择排序结束)第一趟 (9)[9],3,2,5,8,1,6第二趟 (8)[9,8],2,5,3,1,6第三趟 (6)[9,8,6],5,3,1,2第四趟 (5)[9,8,6,5],3,1,2第五趟 (3)[9,8,6,5,3],1,2第六趟 (2)[9,8,6,5,3,2],1(3)直接插入排序是稳定排序,直接选择排序是不稳定排序。
7. 给出一组关键字:29,18,25,47,58,12,51,10,分别写出按下列各种排序方法进行排序时的变化过程:(1) 归并排序每归并一次书写一个次序。
(2) 快速排序每划分一次书写一个次序。
(3) 堆排序先建成一个堆,然后每从堆顶取下一个元素后,将堆调整一次。
(1)2路归并第一趟:18,29,25,47,12,58,10,51;第二趟:18,25,29,47,10,12,51,58;第三趟:10,12,18,25,29,47,51,58(2)快速排序第一趟:10,18,25,12,29,58,51,47;第二趟:10,18,25,12,29,47,51,88;第三趟:10,12,18,25,29,47,51,88(3)堆排序建大堆58,47,51,29,18,12,25,10;①51,47,25,29,18,12,10,58;②47,29,25,10,18,12,51,58;③29,18,25,10,12,47,51,58;④25,18,12,10,29,47,51,58;⑤18,10,12,25,29,47,51,58;⑥12,10,18,25,29,47,51,58;⑦10,12,18,25,29,47,51,588.请写出应填入下列叙述中()内的正确答案。
排序有各种方法,如插入排序、快速排序、堆排序等。
设一数组中原有数据如下:15,13,20,18,12,60。
下面是一组由不同排序方法进行一遍排序后的结果。
(快速)排序的结果为:12,13,15,18,20,60(冒泡)排序的结果为:13,15,18,12,20,60(直接插入)排序的结果为:13,15,20,18,12,60(希尔Shell)排序的结果为:12,13,20,18,15,60五、算法设计题:1.冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。
void BubbleSort2(int a[],int n) //相邻两趟向相反方向起泡的冒泡排序算法{ change=1;low=0;high=n-1; //冒泡的上下界while(low<high && change){ change=0; //设不发生交换for(i=low;i<high;i++) //从上向下起泡if(a[i]>a[i+1]){a[i]<-->a[i+1];change=1;} //有交换,修改标志changehigh--; //修改上界for(i=high;i>low;i--) //从下向上起泡if(a[i]<a[i-1]){a[i]<-->a[i-1];change=1;}low++; //修改下界}//while}//BubbleSort22.写出一趟快速排序算法。
int Partition(RecType R[],int l,int h)//一趟快速排序算法,枢轴记录到位,并返回其所在位置,{ int i=l; j=h; R[0] = R[i]; x = R[i].key;while(i<j){ while(i<j && R[j].key>=x) j--;if (i<j) R[i] = R[j];while(i<j && R[i].key<=x) i++;if (i<j) R[j] = R[i];}//whileR[i]=R[0];return i;。