第10章 排序答案
【精编】新人教版八年级物理下册第10章第2节:阿基米德原理(含答案)

第十章 第2节:阿基米德原理一、选择题1.(12湘西)如图浮在水面上的物体所受到浮力的方向是AA .竖直向上B .竖直向下C .水平向左D .水平向右2.(12宁夏)跳水运动员入水的过程中,他所受浮力F 随深度h 变化的关系如图所示,其中正确的是A3.(12乐山)如图所示,弹簧测力计每小格为0.5N ,将一金属块挂在弹簧测力计上静止时如图甲所示;然后将金属块浸没于水中静止时如图乙所示。
(g 取10N/kg ),则金属块的密度ρ金为BA .1.0×103kg/m 3B .4.0×103kg/m 3C .2.0×103kg/m 3D .4kg/m 34.(12杭州)小吴同学为探究力之间的关系做了如图所示的实验。
将弹簧测力计下端吊着的铝块逐渐浸入台秤上盛有水的烧杯中,直至刚没入水中(不接触容器,无水溢出)。
在该过程中,下列有关弹簧测力计和台秤示数的说法正确的是CA .弹簧测力计的示数减小,台秤示数不变B .弹簧测力计的示数不变,台秤示数也不变C .弹簧测力计的示数减小,台秤示数增大D .弹簧测力计的示数不变,台秤示数增大5.(11成都)关于物体在液体中受到的浮力,下列说法正确的是CA .漂浮的物体比沉底的物体受到的浮力大B .物体的密度越大,受到的浮力越小C .物体排开水的体积越大,受到的浮力越大D .浸没在水中的物体受到的浮力与深度有关6.(11济宁)列四个情景中,受到的浮力增大的物体是DA.从深水处走向海岸沙滩的游泳者 B .从长江驶入大海的轮船C.海面下正在下沉的潜水艇 D .在码头装载货物的轮船7.(11温州)将空矿泉水瓶慢慢压入水中,直到完全浸没。
下列对矿泉水瓶受到的浮力分析不正确的是DA .矿泉水瓶受到水对它的浮力B .浮力的方向竖直向上C .排开水的体积越大,受到的浮力越大D .浸没后,压入越深,受到的浮力越大A B CD8.(11日照)将质量为0.5kg 的物体,轻轻放入盛满清水的溢水杯中,溢出0.2kg 的水,则此物体受到的浮力是(g 取10N/kg ) CA .5 NB .0.5 NC .2 ND .0.2 N9.(11新疆)某同学将一漂浮在水面不开口的饮料罐缓慢按入水中,当饮料罐全部浸入在水中后,继续向下压一段距离,共用时t 。
第十章排序答案

第10章排序一、选择题1.某内排序方法的稳定性是指( D )。
【南京理工大学 1997 一、10(2分)】A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( D )排序法是不稳定性排序法。
【北京航空航天大学 1999 一、10 (2分)】 A. 插入 B. 冒泡 C. 二路归并 D. 堆积3.下列排序算法中,其中(D )是稳定的。
【福州大学 1998 一、3 (2分)】A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序4.稳定的排序方法是( B )【北方交通大学 2000 二、3(2分)】A.直接插入排序和快速排序 B.折半插入排序和起泡排序C.简单选择排序和四路归并排序 D.树形选择排序和shell排序5.下列排序方法中,哪一个是稳定的排序方法?( B )【北方交通大学 2001 一、8(2分)】A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序6. 快速排序方法在( D )情况下最不利于发挥其长处。
【燕山大学 2001 一、3 (2分)】A. 要排序的数据量太大B. 要排序的数据中含有多个相同值C. 要排序的数据个数为奇数D. 要排序的数据已基本有序7. 以下序列不是堆的是( D )。
【西安电子科技大学 2001应用一、5 (2分)】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)8.下列四个序列中,哪一个是堆( C )。
【北京工商大学 2001 一、8 (3分)】A. 75,65,30,15,25,45,20,10B. 75,65,45,10,30,25,20,15C. 75,45,65,30,15,25,20,10D. 75,45,65,10,25,30,20,159.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( A )排序法。
数据结构第九、十章作业答案

数据结构第九、⼗章作业答案第九章查找⼀、填空题1. 在数据的存放⽆规律⽽⾔的线性表中进⾏检索的最佳⽅法是顺序查找(线性查找)。
2. 线性有序表(a 1,a 2,a 3,…,a 256)是从⼩到⼤排列的,对⼀个给定的值k ,⽤⼆分法检索表中与k 相等的元素,在查找不成功的情况下,最多需要检索 8 次。
设有100个结点,⽤⼆分法查找时,最⼤⽐较次数是 7 。
3. 假设在有序线性表a[1..20]上进⾏折半查找,则⽐较⼀次查找成功的结点数为1;⽐较两次查找成功的结点数为 2 ;⽐较四次查找成功的结点数为 8 ,其下标从⼩到⼤依次是1,3,6,8,11,13,16,19______,平均查找长度为 3.7 。
解:显然,平均查找长度=O (log 2n )<5次(25)。
但具体是多少次,则不应当按照公式)1(log 12++=n n n ASL 来计算(即(21×log 221)/20=4.6次并不正确!)。
因为这是在假设n =2m -1的情况下推导出来的公式。
应当⽤穷举法罗列:全部元素的查找次数为=(1+2×2+4×3+8×4+5×5)=74; ASL =74/20=3.74.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 28,6,12,20 ⽐较⼤⼩。
5. 在各种查找⽅法中,平均查找长度与结点个数n ⽆关的查找⽅法是散列查找。
6. 散列法存储的基本思想是由关键字的值决定数据的存储地址。
7. 有⼀个表长为m 的散列表,初始状态为空,现将n (n8、设⼀哈希表表长M 为100 ,⽤除留余数法构造哈希函数,即H (K )=K MOD P (P<=M ), 为使函数具有较好性能,P 应选( 97 )9、在各种查找⽅法中,平均查找长度与结点个数⽆关的是哈希查找法10、对线性表进⾏⼆分查找时,要求线性表必须以顺序⽅式存储,且结点按关键字有序排列。
排序答案

第10章排序一、选择题1.某内排序方法的稳定性是指( B )。
【南京理工大学 1997 一、10(2分)】A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法 D.以上都不对2.下面给出的四种排序法中( D )排序法是不稳定性排序法。
【北京航空航天大学 1999 一、10 (2分)】 A. 插入 B. 冒泡 C. 二路归并 D. 堆积3.下列排序算法中,其中(D )是稳定的。
【福州大学 1998 一、3 (2分)】A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序4.稳定的排序方法是( B )【北方交通大学 2000 二、3(2分)】A.直接插入排序和快速排序 B.折半插入排序和起泡排序C.简单选择排序和四路归并排序 D.树形选择排序和shell排序5.下列排序方法中,哪一个是稳定的排序方法?( B )【北方交通大学 2001 一、8(2分)】A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序6.若要求尽可能快地对序列进行稳定的排序,则应选(A.快速排序 B.归并排序 C.冒泡排序)。
B 【北京邮电大学 2001 一、5(2分)】7.如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。
( C E )就是不稳定的排序方法。
【清华大学 1998 一、3 (2分)】A.起泡排序 B.归并排序 C.Shell排序 D.直接插入排序 E.简单选择排序8.下面的排序算法中,不稳定的是(C E F )【北京工业大学 1999 一、2 (2分)】A.起泡排序B.折半插入排序C.简单选择排序D.希尔排序E.基数排序F.堆排序。
9.对下列四种排序方法,在排序中关键字比较次数同记录初始排列无关的是( BD )。
A.直接插入 B. 二分法插入 C. 快速排序 D. 归并排序【南京理工大学 2000 一、7 (1.5分)】10.比较次数与排序的初始状态无关的排序方法是( D )。
第10章NP完全问题(自己写的)

主讲:王培崇
对一个已确定是可计算的问题,人们总试图寻求实现它的最优算法。然而 对有些问题,这个工作难度很大,目前还不能做到这点。
1、P类问题:问题的时间复杂性是多项式阶的,这只须设 计一个实现它的时间复杂性是多项式阶的算法即可,例如分类 (又称排序)问题。 2、顽型问题:人们已经设计出实现它的时间复杂性为指数阶 的算法,并且已证明该问题不存在多项式阶的算法,例如梵塔 问题;但是有这样一类问题, 3、NP问题:人们目前已设计的实现它的算法其时间复杂性 为指数阶的,但还不能肯定它有或没有多项式阶的算法。
如果是,则停机回答yes,如果不是则停 机回答no。
(上述是以图灵机计算模型实现的。)
• 定义10.3
NP类问题由下面的判定问题组成,对 于它们存在着多项式时间内运行的不确定性 算法。
例子10.4
coloring问题:
(1)设I是coloring的一个实例,s宣称是I的 解。容易建立一个确定性算法验证s选择、送餐车辆指派问题、车 间调度问题等。
见表1.1,现存的求解方法,中等输入也 需要几百年时间才能求解成功。
4、NP问题的描述转换 转换为判定问题。
两种答案:yes或no。 最优化问题:关心的是某个量的最大化或 最小化问题。
5、问题转化举例: 10.1设s是一个实数序列,EU问题是:是否S 中的所有的数都不相同。
判定问题:
输入:一个整数序列S; 问题:在S中存在两个数据相等吗。 10.2 给出一个无向图G=(V,E),用k种颜色对G 着色.......,使得图中没有两个邻接点有相同的 颜色。
• 判定问题: 输入:一个无向图G=(V,E)和一个正整数k>=1; 问题:G可以k着色吗?即G最多可以用k种颜 色着色吗?
实用数据结构基础(第四版)课后习题

一、判断题(第一章绪论)1.数据元素是数据的最小单元。
答案:错误2.一个数据结构是由一个逻辑结构和这个逻辑结构上的基本运算集构成的整体。
答案:错误3.数据的存储结构是数据元素之间的逻辑关系和逻辑结构在计算机存储器内的映像。
答案:正确4.数据的逻辑结构是描述元素之间的逻辑关系,它是依赖于计算机的。
答案:错误5.用语句频度来表示算法的时间复杂度的最大好处是可以独立于计算机的软硬件,分析算法的时间答案:正确(第二章线性表)6.取顺序存储线性表的第i个元素的时间同i的大小有关。
答案:错误7.线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。
答案:正确8.线性链表的每一个节点都恰好包含一个指针域。
答案:错误9.顺序存储方式的优点的存储密度大,插入和删除效率不如练市存储方式好。
答案:正确10.插入和删除操作是数据结构中最基本的两种操作,所以这两种操作在数组中也经常使用。
答案:错误(第三章栈)11.栈是一种对进栈和出栈作了限制的线性表。
答案:错误12.在C(或C++)语言中设顺序栈的长度为MAXLEN,则top=MAXLEN表示栈满。
答案:错误13.链栈与顺序栈相比,其特点之一是通常不会出现满栈的情况。
答案:正确14.空栈就是所有元素都为0上的栈。
答案:错误15.将十进制数转换为二进制数是栈的典型应用之一。
答案:正确(第四章队列)16.队列式限制在两端进行操作的线性表。
答案:正确17.判断顺序队列为空的标准是头指针和尾指针都指向同一结点。
答案:错误18.在循环链列队中无溢出现像。
答案:错误19.在循环队列中,若尾指针rear大于头指针front,则元素个数为rear-front。
答案:正确20.顺序队列和循环队列关于队满和队空的判断条件是一样的。
答案:错误(第五章串)21.串是n个字母的有限序列。
答案:错误22.串的堆分配存储是一种动态存储结构。
答案:正确23.串的长度是指串中不同字符的个数。
第10章 排序

第十章排序一、单项选择题1.有一组序列48,36,68,99,75,24,58,52进行快速排序,要求结果按从小到大排序,则进行一次划分之后结果为_____。
A. (24 28 36) 48 (52 68 75 99)B. (28 36 24) 48 (75 99 68 52)C. (36 68 99) 48 (75 24 28 52)D. (28 36 24) 48 (99 75 68 52)2.已知两个有序表,若要将它们组合成一个新的有序表,最好的方法是_____。
A. 希尔排序B. 二分插入排序C. 合并排序D. 冒泡排序3.排序译意风稳定的和不稳定的之分,下列四个说法中,只有______是正确的。
A. 快速排序是稳定的排序方法B. 堆排序是不稳定的排序方法C. 希尔排序是稳定的排序方法D. 冒泡排序是不稳定的排序方法4. 下列排序方法中,____方法是不稳定的。
A. 冒泡排序B. 希尔排序C. 冒泡排序D. 直接插入排序5. 下列排序方法中,在待排序的数据已经有序时,花费时间反而最多的是______。
A.快速排序B. 希尔排序C. 冒泡排序D. 堆排序6. 快速排序方法在最好情况下的时间复杂度为______。
A. O(n)B. O(n2)C. O(nlog2n)D.(log2n)7. 下列排序方法中,时间复杂度不受数据初始状态影响,恒为O(n2)的是_______。
A. 堆排序B.冒泡排序C. 直接选择排序D.快速排序8. 依次将待排序序列中的元素和有序子序列合并为一个新的有序子序列的排序方法是____。
A. 快速排序B.插入排序C. 冒泡排序D. 堆排序9. 在表R中排序前已按键值递增顺序排序,则_____方法的比较次数最少。
A. 直接插入排序B. 快速排序C. 归并排序D. 选择排序10. 已知表A中每个元素距其最终位置不远,采用______方法最节省时间。
A. 堆排序B. 冒泡排序C. 快速排序D. 直接选择排序11. 在下列排序方法中,字比较的次数与记录的初始排列次序无关的是______。
数据结构第10章习题

三、填空题
1. 设用希尔排序对数组{98,36,-9,0,47,23, 1,8,10,7}进行排序,给出的步长(也称增量 序列)依次是4,2,1则排序需__________趟, 写出第一趟结束后,数组中数据的排列次序 __________。 【南京理工大学 1997 三、5 (2分)】 2.若不考虑基数排序,则在排序过程中,主要进行 的两种基本操作是关键字的______和记录的 _____。 【北京邮电大学 2001 二、7 (4分)】 3.分别采用堆排序,快速排序,冒泡排序和归并排 序,对初态为有序的表,则最省时间的是_____ 算法,最费时间的是______算法。【福州大学 1998 二、10 (2分)】
பைடு நூலகம்
12.就排序算法所用的辅助空间而言,堆排序,快 速排序,归并排序的关系是( a ) A.堆排序〈 快速排序〈归并排序 B.堆排序 〈 归并排序〈 快速排序 C.堆排序〉 归并排序 〉快速排序 D.堆排 序 > 快速排序 > 归并排序 E.以上答案都不 对 【西安交通大学 1996 三、1 (3分)】 13.将两个各有N个元素的有序表归并成一个有序表, 其最少的比较次数是( a ) A.N B.2N-1 C.2N D.N-1
2.比较次数与排序的初始状态无关的排序方法是 ( d )。【北方交通大学 2000 二、2(2分)】
A.直接插入排序 D.简单选择排序 B.起泡排序 C.快速排序
3.数据序列(8,9,10,4,5,6,20,1,2)只能是 下列排序算法中的( c )的两趟排序后的结果。 【合肥工业大学 1999 一、3 (2分)】 A.选择排序 B.冒泡排序 C.插入排序 D.堆排序 4.数据序列(2,1,4,9,8,10,6,20)只能是下 列排序算法中的( a )的两趟排序后的结果。 A. 快速排序 B. 冒泡排序 C. 选择排序 D. 插入排序 5.对序列{15,9,7,8,20,-1,4}进行排序,进行 一趟后数据的排列变为{4,9,-1,8,20,7,15}; 则采用的是( c )排序。【南京理工大学 1998 一、8(2分)】 A. 选择 B. 快速 C. 希尔 D. 冒泡
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章排序(参考答案)18. 对于后三种排序方法两趟排序后,序列的首部或尾部的两个元素应是有序的两个极值,而给定的序列并不满足。
20. 本题为步长为3的一趟希尔排序。
24.枢轴是73。
49. 小根堆中,关键字最大的记录只能在叶结点上,故不可能在小于等于n/2的结点上。
64. 因组与组之间已有序,故将n/k个组分别排序即可,基于比较的排序方法每组的时间下界为O(klog2k),全部时间下界为O(nlog2k)。
部分答案解释如下:5. 错误。
例如冒泡排序是稳定排序,将4,3,2,1按冒泡排序排成升序序列,第一趟变成3,2,1,4,此时3就朝向最终位置的相反方向移动。
12. 错误。
堆是n个元素的序列,可以看作是完全二叉树,但相对于根并无左小右大的要求,故其既不是二叉排序树,更不会是平衡二叉树。
22. 错误。
待排序序列为正序时,简单插入排序比归并排序快。
三、填空题1. 比较,移动2.生成有序归并段(顺串),归并3.希尔排序、简单选择排序、快速排序、堆排序等4. 冒泡,快速5. (1)简单选择排序 (2)直接插入排序(最小的元素在最后时)6. 免去查找过程中每一步都要检测整个表是否查找完毕,提高了查找效率。
7. n(n-1)/28.题中p指向无序区第一个记录,q指向最小值结点,一趟排序结束,p和q所指结点值交换,同时向后移p指针。
(1)!=null (2)p->next (3)r!=null (4)r->data<q->data (5)r->next (6)p->next9. 题中为操作方便,先增加头结点(最后删除),p指向无序区的前一记录,r指向最小值结点的前驱,一趟排序结束,无序区第一个记录与r所指结点的后继交换指针。
(1)q->link!=NULL (2)r!=p (3)p->link (4)p->link=s (5)p=p->link10.(1)i<n-i+1 (2)j<=n-i+1 (3)r[j].key<r[min].key (4)min!=i (5)max==i(6)r[max]<-->r[n-i+1]11.(1)N (2)0 (3)N-1 (4)1 (5)R[P].KEY<R[I].KEY (6)R[P].LINK(7)(N+2)(N-1)/2(8)N-1 (9)0 (10)O(1)(每个记录增加一个字段) (11)稳定(请注意I的步长为-1)12. 3,(10,7,-9,0,47,23,1,8,98,36) 13.快速14.(4,1,3,2,6,5,7)15.最好每次划分能得到两个长度相等的子文件。
设文件长度n=2k-1,第一遍划分得到两个长度⎣n/2⎦的子文件,第二遍划分得到4个长度⎣n/4⎦的子文件,以此类推,总共进行k=log2(n+1)遍划分,各子文件长度均为1,排序结束。
16.O(n2) 17. O(nlog2n) 18.(1)2*i (2)r[j].key>r[j+1].key (3)true(4)r[j] (5)2*i19.(1)2*i (2)j<=r (3)j←j+1 (4)x.key>heap[j].key (5)i←j (6)j←2*i(7)x20.(1)j:=2*i (2)finished:=false (3)(r[j].key>r[j+1].key) (4)r[i]:=r[j](5)i:=j(6) j:=2*i (7)r[i]:=t; (8)s if t(r,i,n) (9)r[1]:=r[i](10)s if t(r,1,i-1)21. ④是堆 (1)选择 (2)筛选法 (3)O(nlog2n) (4)O(1)22. (1) 选择 (2)完全二叉树 (3)O(Nlog2N) (4)O(1) (5)满足堆的性质23.(1)finish:=false (2)h[i]:=h[j]; i:=j; j:=2*j; (3)h[i]:=x (4)h,k,n(5)s if t(h,1,r-1)24. {D,Q,F,X,A,P,B,N,M,Y,C,W}25. (1)p[k]:=j (2)i:=i+1 (3)k=0 (4)m:=n (5)m<n (6)a[i]:=a[m] (7)a[m]:=t26. 程序(a)(1)true (2)a[i]:=t (3)2 TO n step 2 (4)true (5)NOT flag程序(b)(1)1 (2)a[i]=t (3)(i=2;i<=n;i+=2) (4)1 (5)flag27.(Q,A,C,S,Q,D,F,X,R,H,M,Y),(F,H,C,D,Q,A,M,Q,R,S,Y,X) 28. 初始归并段(顺串)29. 初始归并段,初始归并段,减少外存信息读写次数(即减少归并趟数),增加归并路数和减少初始归并段个数。
30. ⎡n/m⎤31.(1)m,j-1 (2) m:=j+1 (3)j+1,n (4) n:=j-1 最大栈空间用量为O(logn)。
四、应用题1. 假设含n个记录的序列为{ R1, R2, …,R n },其相应的关键字序列为{ K1, K2, …,K n },这些关键字相互之间可以进行比较,即在它们之间存在着这样一个关系Ks1≤Ks2≤…≤Ks n,按此固有关系将n个记录序列重新排列为{ Rs1, Rs2, …,Rs n }。
若整个排序过程都在内存中完成,则称此类排序问题为内部排序。
2.3. 这种说法不对。
因为排序的不稳定性是指两个关键字值相同的元素的相对次序在排序前、后发生了变化,而题中叙述和排序中稳定性的定义无关,所以此说法不对。
对4,3,2,1起泡排序就可否定本题结论。
4. 可以做到。
取a与b进行比较,c与d进行比较。
设a>b,c>d(a<b和c<d情况类似),此时需2次比较,取b和d比较,若b>d,则有序a>b>d;若b<d时则有序c>d>b,此时已进行了3次比较。
再把另外两个元素按折半插入排序方法,插入到上述某个序列中共需4次比较,从而共需7次比较。
5. 本题答案之一请参见第9章的“四、应用题”第70题,这里用分治法求解再给出另一参考答案。
对于两个数x和y,经一次比较可得到最大值和最小值;对于三个数x,y,z,最多经3次比较可得最大值和最小值;对于n(n>3)个数,将分成长为n-2和2的前后两部分A和B,分别找出最大者和最小者:Max A、Min A、Max B、Min B,最后Max={Max A,Max B}和Min={Min A,Min B}。
对A 使用同样的方法求出最大值和最小值,直到元素个数不超过3。
设C(n)是所需的最多比较次数,根据上述原则,当n>3时有如下关系式:C(n)=⎪⎩⎪⎨⎧>+-==33)2(3 32 1nnCnn通过逐步递推,可以得到:C(n)=⎡3n/2⎤-2。
显然,当n>=3时,2n-3>3n/2-2。
事实上,⎡3n/2⎤-2是解决这一问题的比较次数的下限。
6. 假定待排序的记录有n个。
由于含n个记录的序列可能出现的状态有n!个,则描述n 个记录排序过程的判定树必须有n!个叶子结点。
因为若少一个叶子,则说明尚有两种状态没有分辨出来。
我们知道,若二叉树高度是h,则叶子结点个数最多为2h-1;反之,若有u 个叶子结点,则二叉树的高度至少为⎡log2u⎤+1。
这就是说,描述n个记录排序的判定树必定存在一条长度为⎡log2(n!)⎤的路径。
即任何一个籍助“比较”进行排序的算法,在最坏情况下所需进行的比较次数至少是⎡log2(n!)⎤。
根据斯特林公式,有⎡log2(n!)⎤ =O(nlog2n)。
即籍助于“比较”进行排序的算法在最坏情况下能达到的最好时间复杂度为O(nlog2n)。
证毕。
7. 答:拓扑排序,是有向图的顶点依照弧的走向,找出一个全序集的过程,主要是根据与顶点连接的弧来确定顶点序列;冒泡排序是借助交换思想通过比较相邻结点关键字大小进行排序的算法。
8. 直接插入排序的基本思想是基于插入,开始假定第一个记录有序,然后从第二个记录开始,依次插入到前面有序的子文件中。
即将记录R[i](2<=i<=n)插入到有序子序列R[1..i-1]中,使记录的有序序列从R[1..i-1]变为R[1..i] ,最终使整个文件有序。
共进行n-1趟插入。
最坏时间复杂度是0(n2),平均时间复杂度是0(n2),空间复杂度是O(1),是稳定排序。
简单选择排序的基本思想是基于选择,开始有序序列长度为零,第i(1<=i<n)趟简单选择排序是,从无序序列R[i..n]的n-i+1记录中选出关键字最小的记录,和第i个记录交换,使有序序列逐步扩大,最后整个文件有序。
共进行n-1趟选择。
最坏时间复杂度是0(n2),平均时间复杂度是0(n2),空间复杂度是O(1),是不稳定排序。
二路并归排序的基本思想是基于归并,开始将具有n个待排序记录的序列看成是n个长度为1的有序序列,然后进行两两归并,得到⎡n/2⎤个长度为2的有序序列,再进行两两归并,得到⎡n/4⎤个长度为4的有序序列。
如此重复,经过⎡log2n⎤趟归并,最终得到一个长度为n的有序序列。
最坏时间复杂度和平均时间复杂度都是0(nlog2n),空间复杂度是O(n),是稳定排序。
9. 错误。
快速排序,堆排序和希尔排序是时间性能较好的排序方法,但都是不稳定的排序方法。
10. 等概率(后插),插入位置0..n,则平均移动个数为n/2。
若不等概率,则平均移动个数为∑-=+1i)-(n*1)/2)(n*i)/(n-(nni=312+n11. 从节省存储空间考虑:先选堆排序,再选快速排序,最后选择归并排序;从排序结果的稳定性考虑:选择归并排序。
堆排序和快速排序都是不稳定排序;从平均情况下排序最快考虑:先选择快速排序。
12. (1)堆排序,快速排序,归并排序 (2)归并排序 (3)快速排序 (4)堆排序13. 平均比较次数最少: 快速排序; 占用空间最多: 归并排序; 不稳定排序算法:快速排序、堆排序、希尔排序。
14. 求前k个最大元素选堆排序较好。
因为在建含n个元素的堆时,总共进行的关键字的比较次数不超过4n ,调整建新堆时的比较次数不超过2log2n次。
在n个元素中求前k个最大元素,在堆排序情况下比较次数最多不超过4n+2klog2n。
稳定分类是指,若排序序列中存在两个关键字值相同的记录Ri与Rj(Ki=Kj,i≠j)且Ri领先于Rj,若排序后Ri与Rj的相对次序保持不变,则称这类分类是稳定分类(排序),否则为不稳定分类。