第10章 排序答案

合集下载

C语言程序设计(第三版)谭浩强著 各章习题答疑

C语言程序设计(第三版)谭浩强著 各章习题答疑

以八、 /* 以八、十六进制输出 */
} ???? 是对应的带符号短整数。 输出结果是八进制整数 十六进制整数
2
3.9 计算某个表达式的值。 通用程序清单如下: stdio.h” #include ”stdio.h stdio.h void main() { ?????? x; 计算表达式值存入x x=( 表达式 );/* 计算表达式值存入x */ printf(”% printf( %?\n”,x); ,x); } ?????? 表达式对应的数据类型符(需事先判断) ? 表达式为整型,则为d 表达式为实型,则为f 3
第七章习题答疑(二)
折半查找法在排序数组中查找某个数。 上课时已有提示。 7.13 字符串连接(b[]中字符串连接到a[]中字符串后) 设:a[10]=”12 ,b[]=”abc 12”, abc” 12 abc (1)找到a串的’\0’的下标(i=2) ’ (2)j=0; 当型循环(b[j]!=’\0’) ’\ ’ a[i]=b[j],i++,j++ (3)a[i]=’\0’ \ 7.15 字符串复制(b[]中字符串复制到a[]中) 设:a[10]=”12”,b[]=”abc” (1)i=0; 当型循环(b[i]!=’\0’) a[i]=b[i],i++ (2)a[i]=’\0’ 7.9
18
第十章习题答疑(一)
输入3个整数,按照由小到大顺序输出。 int x,y,z,*px=&x,*py=&y,*pz=&x; 用以前的程序,其中的x、y、z换成*px、*py、*pz 10.3 输入10个整数存入一维数组a[10],将其中最小数与第1 个数交换,最大数与最后一个数交换。 要求编3个函数: 10 10 输入10个整数、交换、输出交换后的10个整数。 输入函数: void in(int *p,int n) 输出函数: void out(int *p,int n) 交换函数: void change(int *p,int n) 其中寻找最大最小数的方法: int *q,*max,*min; for (max=min=p,q=p+1;q<p+n;q++) { if(*max<*q) max=q; if(*min>*q) min=q; } 19 交换的方法:*p和*min,*(p+n-1)和*max 10.1

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

【精编】新人教版八年级物理下册第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章 排序学习与指导

数据结构答案 第10章 排序学习与指导

第10章排序10.1 知识点分析1.排序基本概念:(1)排序将数据元素的任意序列,重新排列成一个按关键字有序(递增或递减)的序列的过程称为排序。

(2)排序方法的稳定和不稳定若对任意的数据元素序列,使用某个排序方法,对它按关键字进行排序,若对原先具有相同键值元素间的位置关系,排序前与排序后保持一致,称此排序方法是稳定的;反之,则称为不稳定的。

(3)内排序整个排序过程都在内存进行的排序称为内排序,本书仅讨论内排序。

(4)外排序待排序的数据元素量大,以致内存一次不能容纳全部记录,在排序过程中需要对外存进行访问的排序称为外排序。

2.直接插入排序直接插入排序法是将一个记录插到已排序好的有序表中,从而得到一个新的,记录数增1的有序表。

3.二分插入排序二分插入排序法是用二分查找法在有序表中找到正确的插入位置,然后移动记录,空出插入位置,再进行插入的排序方法。

4.希尔排序希尔排序的基本思想是:先选取一个小于n的整数d1作为第一个增量,把待排序的数据分成d1个组,所有距离为d1的倍数的记录放在同一个组内,在各组内进行直接插入排序,每一趟排序会使数据更接近于有序。

然后,取第二个增量d2,d2< d1,重复进行上述分组和排序,直至所取的增量d i=1(其中d i< d i-1 < ……< d2< d1),即所有记录在同一组进行直接插入排序后为止。

5.冒泡排序冒泡法是指每相邻两个记录关键字比大小,大的记录往下沉(也可以小的往上浮)。

每一遍把最后一个下沉的位置记下,下一遍只需检查比较到此为止;到所有记录都不发生下沉时,整个过程结束。

6.快速排序快速排序法是通过一趟排序,将待排序的记录组分割成独立的两部分,其中前一部分记录的关键字均比枢轴记录的关键字小;后一部分记录的关键字均比枢轴记录的关键字大,枢轴记录得到了它在整个序列中的最终位置并被存放好。

第二趟再分别对分割成两部分子序列,再进行快速排序,这两部分子序列中的枢轴记录也得到了最终在序列中的位置而被存放好,并且它们又分别分割出独立的两个子序列……。

第十章排序答案

第十章排序答案

第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章NP完全问题(自己写的)

第10章NP完全问题(自己写的)
第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种颜 色着色吗?

第10章 排序

第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章习题

数据结构第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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三、填空题
1. 比较,移动 2.生成有序归并段(顺串),归并 3.希尔排序、简单选择排序、快速
排序、堆排序等
4. 冒泡,快速 5. (1)简单选择排序 (2)直接插入排序(最小的元素在最后时)
6. 免去查找过程中每一步都要检测整个表是否查找完毕,提高了查找效率。
7.
n(n-1)/2
8.题中 p 指向无序区第一个记录,q 指向最小值结点,一趟排序结束,p 和 q 所指结点值交
26. 程 序 (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)flag
27.(Q,A,C,S,Q,D,F,X,R,H,M,Y),(F,H,C,D,Q,A,M,Q,R,S,Y,X)
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
换,同时向后移 p 指针。(1)!=null
(2)p->next (3)r!=null (4)r->data<q->data
(5)r->next (6)p->next
9. 题中为操作方便,先增加头结点(最后删除),p 指向无序区的前一记录,r 指向最小值
结点的前驱,一趟排序结束,无序区第一个记录与 r 所指结点的后继交换指针。
二、判断题
1.√ 2.× 3.× 4.× 5.× 6.× 7.× 8.× 9.× 10. 11. 12. 13.
××××
14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
√√×××××××××√×
27. 28. 29. 30. 31.
√×××√
部分答案解释如下:
18. 对于后三种排序方法两趟排序后,序列的首部或尾部的两个元素应是有序的两个极值,
而给定的序列并不满足。
20. 本题为步长为 3 的一趟希尔排序。
24.枢轴是 73。
49. 小根堆中,关键字最大的记录只能在叶结点上,故不可能在小于等于 n/2 的结点上。
64. 因组与组之间已有序,故将 n/k 个组分别排序即可,基于比较的排序方法每组的时间下 界为 O(klog2k),全部时间下界为 O(nlog2k)。
(1)q->link!=NULL (2)r!=p (3)p->link (4)p->link=s
(5)p=p->link
10.(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)
50. 51. 52.E 53. 54.C 55. 56.B 57. 58.A 59.1C 59.2A 59.3D 59.4B
D C ,G B
C
B
59.5G
60.1B
60.2C 61.1B 61.2D 61.3B 61.4C 61.5F 62.A 63. 64. 65.A 66.
60.3A
AB
A
部分答案解释如下:
第 10 章 排序(参考答案)
一、选择题
1.D 2.D 3.D 4.B 5.B 6.B 7.C, 8.A 9.C 10.3B
12.C 13. 14.B 15. 16.D 17. 18. 19.A 20. 21.
11.4(A,C,F)(B,D,E) ,D A ,D D
(4)r[j] (5)2*i
19.(1)2*i (2)j<=r (3)j ← j+1 (4)x.key>heap[j].key (5)i ← j (6)j ← 2*i
(7)x
20.(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)sift(r,i,n)
(9)r[1]:=r[i]
(10)sift(r,1,i-1)
21. ④是堆 (1)选择 (2)筛选法 (3)O(nlog2n) (4)O(1)
22. (1) 选择 (2)完全二叉树
(3)O(Nlog2N) (4)O(1) (5)满足堆的性质
CA
CC
22. 23. 24.C 25. 26.C 27. 28.C 29. 30.C 31. 32. 33.A 34. 35.
BC
A
D
B ,B D D
DA
36. 37. 38.C 39. 40.C 41. 42.B 43. 44.B 45. 46. 47.B 48. 49.
AA
B
C
A
A C ,D D D
5. 错误。例如冒泡排序是稳定排序,将 4,3,2,1 按冒泡排序排成升序序列,第一趟变成
3,2,1,4,此时 3 就朝向最终位置的相反方向移动。
12. 错误。堆是 n 个元素的序列,
可以看作是完全二叉树,但相对于根并无左小右大的要求,故其既不是二叉排序树,更不会
是平衡二叉树。
22. 错误。待排序序列为正序时,简单插入排序比归并排序快。
23.(1)finish:=false (2)h[i]:=h[j]; i:=j; j:=2*j; (3)h[i]:=x
(4)h,k,n
(5)sift(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]:=t
相关文档
最新文档