数据结构与数据库 习题课(2) 2016年11月25日.

Slides:



Advertisements
Similar presentations
教师手册 教师职业守则(全体教师) 中文教学工作细则(中文、双语教师) 中文教师业绩评估(中文、双语教师)
Advertisements

精神疾病与社区处理.
參訪堪薩斯市美國退伍軍人醫療中心( Kansas City VA Medical Center)心得報告
丁 频 农业及食品饮料行业高级分析师 贺菊颖 中药行业分析师 王友红 化学制药及生物制药行业分析师 路 颖 商业贸易行业首席分析师 1.
§2 线性空间的定义与简单性质 主要内容 引例 线性空间的定义 线性空间的简单性质 目录 下页 返回 结束.
创新大赛经验浅谈 高二(18)班 黄佳淇.
学业考试命题策略 牛学文 浙江省教育厅教研室.
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
福嚴校友「佛學研習營」 活動內容 ●主辦單位:福嚴佛學院校友會 ●協辦單位:元亨寺 ●活動地點:元亨寺 ●活動時間:2008/4/14~15.
英 德 美 法 标志 1689年 《权利法案》 1871年 《德意志帝国宪法》 1787年宪法 1875年法兰西第三共和国宪法 政体 君主立宪制 民主共和制 行政权 内阁、首相 皇帝、宰相 总统 立法权 议会 国会 权力中心 皇帝 特点 君主虚位 议会至上 军事封建 皇帝权重 总统共和制 议会共和制.
高一地理必修Ⅰ 第一章 宇宙中的地球 第三节(3) 地球公转的地理意义 (续二) 湖南师大附中高一地理备课组王全胜.
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
淡水泉投资:安全稳健低回撤 长期业绩卓著 产品基本信息 基金经理简介 产品全称 银河证券-盘晟淡水泉成长1号 基金经理 赵军 受托人
机器设备评估底稿(操作类) ( ) 王建军.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
交通事故處置 當事人責任與損害賠償 屏東縣政府警察局交通隊.
勞保年金制度及軍教人員 退休制度改革規劃 行政院年金制度改革小組 102年1月30日.
全面预算管理培训 北大纵横管理咨询公司 2003年10月.
中央广播电视大学开放教育 成本会计(补修)期末复习
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
第3章 机械零件的疲劳强度 强度准则是设计机械零件的最基本准则。强度问题分为静应力强度和变应力强度。绝大多数通用零件都是在变应力下工作的,各式各样的疲劳破坏是通用零件的主要失效形式。本章讨论零件在变应力下的疲劳强度问题。 基本要求 重点、难点 主要内容.
数据结构——树和二叉树 1/96.
数据结构算法 模拟练习及解答二 绍兴文理学院 计算机系计算机应用教研室.
第6章 树和二叉树 (Tree & Binary Tree)
CH6 树和二叉树 6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树和线索二叉树 6.4 树和森林
TA:于波 计算机科学工程系 上海交通大学 December 5, 2009
第八章 查找.
第五章 树 东南大学计算机学院 方效林 本课件借鉴了清华大学殷人昆老师 和哈尔滨工业大学张岩老师的课件.
数据结构 第6章 树和二叉树 什么是树和二叉树?? 二叉树的遍历 数据结构.
講師:聯捷聯合會計師事務所 張志勝會計師(所長)
光的干涉.
[案例1]下面表中所列的是12月22日甲、乙、丙、丁四地的白昼时间,根据表中数据回答1~3题。
贵宾专享 金融服务方案 邓慧景.
中考语文积累 永宁县教研室 步正军 2015.9.
第8章 查找 数据结构(C++描述).
小学数学知识讲座 应用题.
第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案. 第4章 种群和群落 第3节 群落的结构 自主学习案   合作探究案 课后练习案.
倒装句之其他句式.
第六章 树和二叉树 6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树和线索二叉树 6.4 树和森林 6.6 赫夫曼树及其应用.
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
公務人員年金改革法案介紹 (總統公布) 銓敍部退撫司 民國106年8月.
复习.
習作2-1 題目+解答 紐約港 紐約中央公園 格陵蘭島.
北师大版四年级数学上册 平移与平行.
研究地月距離的變化.
第九章 查找 2018/12/9.
本章重点难点 重点:顺序查找、二分查找、二叉排序树查找以及散列表查找的基本思想和算法实现。
二九年的月曆拿到手,除了看到聖嚴師父的「心安平安」墨寶以外,被其精美用心的設計深深感動著,除了有墨筆的國畫及法鼓山活動的圖片外,更有師父中英的法語,字字珠璣誨我諄諄 。 它;是精神食糧及修行的指引,可陪伴我們一整年,這是師父對我們的叮嚀與祝福,很高興在此與大家分享,讓我們 同受法益、同霑法喜。
数据结构 第9章 查找 什么是查找?? 静态查找 动态查找 哈希表 数据结构.
第九章 查找表 9.1静态查找表 9.2动态查找表 9.3哈希表及其查找.
6.3 遍历二叉树和线索二叉树(知识点二) 遍历二叉树 一、问题的提出
第九章 查找 2019/2/16.
P ANNUAL REPORT DESIGN BY PENELOPE ENTER THE TIME
二九年的月曆拿到手,除了看到聖嚴師父的「心安平安」墨寶以外,被其精美用心的設計深深感動著,除了有墨筆的國畫及法鼓山活動的圖片外,更有師父中英的法語,字字珠璣誨我諄諄 。 它;是精神食糧及修行的指引,可陪伴我們一整年,這是師父對我們的叮嚀與祝福,很高興在此與大家分享,讓我們 同受法益、同霑法喜。
Tree & Binary Tree.
公務人員退休制度未來改革方向 銓敘部 中華民國102年2~3月(座談會).
9.1 基本概念 9.2 线性表的查找 9.3 树表的查找 9.4 哈希表的查找 9.5 各种查找方法的比较
二九年的月曆拿到手,除了看到聖嚴師父的「心安平安」墨寶以外,被其精美用心的設計深深感動著,除了有墨筆的國畫及法鼓山活動的圖片外,更有師父中英的法語,字字珠璣誨我諄諄 。 它;是精神食糧及修行的指引,可陪伴我們一整年,這是師父對我們的叮嚀與祝福,很高興在此與大家分享,讓我們 同受法益、同霑法喜。
Ch.9 查找 §9.1 基本概念 查找和排序是两个重要的运算
不動產估價.
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
第八节 算术运算符和算术表达式.
11月份豆油价格区间震荡 宏源期货农产品团队 张磊 2011年10月29日.
人民教育出版社义务教育教科书物理(八年级下册)
05 债务重组.
習作2-1 題目+解答 紐約港 紐約中央公園 格陵蘭島.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
本节内容 1.二叉排序树的定义 2.二叉排序树的查找操作 3.二叉排序树的插入操作 4.二叉排序树的删除操作 5.二叉排序树的总结
数列求和 Taojizhi 2019/10/13.
102年人事預算編列說明 邁向頂尖大學辦公室製作.
Presentation transcript:

数据结构与数据库 习题课(2) 2016年11月25日

目 录 一、树 二、图 三、查找 四、排序

课后习题   5 6 7 2 8 9 10 3 11 12 13 4 1

课后习题   5 6 7 2 8 9 10 3 11 12 13 4 1

课后习题 6.21 写出统计树中叶子结点个数的算法,树用孩子兄弟链表表示。 int LeafCount_CSTree(CSTree T)//求孩子兄弟链表表示的树 T 的叶子数目 { if(!T->firstchild) return 1; //叶子结点 else { count=0; for(child=T->firstchild;child;child=child->nextsib) count+=LeafCount_CSTree(child); return count; //各子树的叶子数之和 } }//LeafCount_CSTree

课后习题 int CountLeaves(BiTree T) { if (T) if (T->lchild) return CountLeaves(T->lchild) + CountLeaves(T->rchild); } else return 1 + CountLeaves(T->rchild);//注意1 return 0;

设一棵完全二叉树具有1000个结点,则此完全二叉树有___个叶子结点,有 ___ 个度为2的结点,有___个结点只有非空左子树,有___个结点只有非空右子树。 注意:完全二叉树的定义与性质

 

写出判断两棵给定二叉树是否相似的算法。 (注:两棵二叉树B1和B2相似是指:B1和B2皆空,或者皆不空且B1的左、右子树和B2的左、右子树分别相似。)

Status SimilarTree(BiTree& T1,BiTree& T2) { if(!T1) // T1 是空树 { if(!T2) return TRUE; // T2 是空树 else return FALSE; } else// T1 是非空树 return FALSE; else// T2 是非空树 { if(SimilarTree(T1->lchild,T2->lchild) && SimilarTree(T1->rchild,T2->rchild)) return TRUE; else return FALSE; } } }

编写算法判别给定二叉树是否为完全二叉树,是则返回1,否则返回0 分析:该问题可以通过层序遍历的方法来解决.不管当前结点 是否有左右孩子,都入队列.这样当树为完全二叉树时,遍历时得到是一个连续的不包含空指针的序列.反之,则序列中会含有空指针.

int IsFull_Bitree(Bitree T) { //判断二叉树是否完全二叉树,是则返回1,否则返回0 InitQueue(Q); flag=0; EnQueue(Q,T); //建立工作队列 while(!QueueEmpty(Q)) { DeQueue(Q,p); if(!p) flag = 1; else if(flag == 1) return 0; else EnQueue(Q,p->lchild); EnQueue(Q,p->rchild); //不管孩子是否为空,都入队列 } } //while return 1; } //IsFull_Bitree

D. 这条路径由一个边的序列构成,不包含顶点 1.所谓简单路径是指_____。 A. 任何一条边在这条路径上不重复出现 B. 任何一个顶点在这条路径上不重复出现 C. 这条路径由一个顶点序列构成,不包含边 D. 这条路径由一个边的序列构成,不包含顶点 分析:B (1)定义:若路径上各顶点 v1,v2,...,vm 均不互相重复, 则称这样的路径为简单路径 (2)对于A,考虑简单回路中任何一条边不重复出现,但简单回路不是简单路径,因为前者不满足简单路径中“顶点不重复出现”的要求。

2.一个有n个顶点的无向图最多有()条边。 A.n B.n(n-1) C. n(n-1)/2 D.2n 分析:C 总计n个顶点有n(n-1)条边。但在无向图中,顶点i到顶点j与顶点j到 顶点i是同一条边,所以总共有n(n-1)/2条边。

3.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为(),所有邻接表中的结点总数是()。 1: A.n B.n+1 C.n-1 D.n+e 2: A.e/2 B.e C.2e D.n+e 分析:A C

4.已知一个图用邻接矩阵表示,计算第i个结点的入度的方法是_______,删除所有从第i个结点出发的边的方法是______。 5.如果n个顶点的图是一个环,则它有 ____棵生成树。 6. n个顶点e条边的图,若采用邻接矩阵存储,则空间复杂度为_______。 7.n个顶点e条边的图,若采用邻接表存储,则空间复杂度为__ 。 分析:4.第i列非零元素之和 将矩阵第i行全部置为零 5.n 6. o(n*n) 7. o(n+e) 稠密图 稀疏图

1)只要无向网中有权值相同的边,其最小生成树就不可能是唯一的。 分析:错误

证明题:MST性质证明 设无向图N=(V, E),U是顶点V的一个非空子集。若(u,v)是一条具有最小权值的边,其中u∈U, v∈V-U,则必存在一棵包含边(u,v)的最小生成树。 15 25 8 11 U V-U

将边(u,v)加入到T中时,由生成树的定义,T必存在一条包含(u,v)的闭合回路。 15 25 8 11 U V-U 设无向图N=(V, E),U是顶点V的一个非空 子集。若(u,v)是一条具有最小权值的边, 其中u∈U, v∈V-U,则必存在一棵包含 边(u,v)的最小生成树。 证明: 设N的任何一棵最小生成树都不包含(u,v),T是一棵最小生成树。 将边(u,v)加入到T中时,由生成树的定义,T必存在一条包含(u,v)的闭合回路。 T上必存在另一条边(u’,v’),其中u’∈U, v’∈V-U,且u和u’之间,v和v’之间均有路径相通。 删去边(u’,v’),可消去回路,同时得到另一棵生成树T’。 由于(u,v)的代价不高于(u’,v’),则T’的代价不高于T,T’是包含(u,v)的一棵最小生成树,与假设矛盾。

如右图所示,设源点为A,求源点 到其它各个顶点的最短路径 结果如下表所示 step S w D:B D:C D:D D:E D:F D:G {A} - 1 2 3 ∞ {AB} B {ABC} C {ABCE} E 4 {ABCED} D 6 5 {ABCEDG} G {ABCEDGF} F

7.5 试利用Dijkstra算法求图7-5中顶点A到其他各顶点之间的最短路径。要求写出执行算法过程中,数组D、P和S各步的状态。 作业题目分析 7.5 试利用Dijkstra算法求图7-5中顶点A到其他各顶点之间的最短路径。要求写出执行算法过程中,数组D、P和S各步的状态。 G A B D C E F 图7-5 15 12 2 5 6 8 4 9 10 3

查找

9.1 若对大小均为n的有序顺序表和无序顺序表分别进行顺序查找,试 在下列三种情况下分别讨论两者在等概率时平均查找长度是否相同? (1)查找不成功,即表中没有关键字等于给的值K的记录; (2)查找成功,且表中只有一个关键字等于给定值K的记录; (3)查找成功,且表中有若干关键字等于给定值K的记录,要求找出所 有这些记录。 答: (1)相同,有序n+1; 无序n+1 (P218) (2)相同,有序(n+1)/2;无序(n+1)/2 (3)不相同,对于有序表,找到了第一个与K相同的元素后,只要再找到 与K不同的元素,即可停止查找;对于无序表,则要一直查找到最后一 个元素。 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

9. 3 画出对长度为13的有序表进行折半查找的判定树,并分别求其等概 率时查找成功和查找不成功的ASL。 答:查找成功: ASL = (1 9.3 画出对长度为13的有序表进行折半查找的判定树,并分别求其等概 率时查找成功和查找不成功的ASL。 答:查找成功: ASL = (1*1+2*2+3*4+4*6)/13 = 41/13 查找失败: ASL = (2*3)/14+(4*12)/14 = 27/7 (P220:查找不成功的过程就是走了一条从根节点到外部节点的路径, 和给定值进行比较的关键字个数等于该路径上内部结点个数) 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

9.4 已知如下所示长度为12的表: (Jan, Feb, Mar, Apr, May, Jun, July, Aug, Sep, Oct, Nov, Dec) 表中,每个元素的查找概率分别为: (0.1,0.25,0.05,0.13,0.01,0.06,0.11,0.07,0.02,0.03,0.1,0.07) (1)若对该表进行顺序查找,求查找成功的平均查找长度; (2)画出从初态为空开始,依次插入结点,生成的二叉排序树; (3)计算该二叉排序树查找成功的平均查找长度; (4)将二叉排序树中的结点Mar删除,画出经过删除处理后的二叉排 序树。 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

(1) ASL=0.1+0.25*2+3*0.05+4*0.13+5*0.01+6*0.06+7*0.11+8*0.07+9*0.02 +10*0.03+11*0.1+12*0.07=5.43 或者 ASL=12*0.1+11*0.25+10*0.05+9*0.13+8*0.01+7*0.06+6*0.11+5*0.07+4 *0.02+3*0.03+0.1*2+0.07=7.57 (2)画出初始为空,依次插入结点,生成的二叉排序树 (不是按照概率而是按照字母做二叉排序树,此题的题干没有表述清楚) 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

(3)该二叉排序树查找成功的平均查找长度。 ASL=0. 1+2. (0. 25+0. 05)+3. (0. 13+0. 01+0 (3)该二叉排序树查找成功的平均查找长度。 ASL=0.1+2*(0.25+0.05)+3*(0.13+0.01+0.06)+4*(0.11+0.07+0.02)+(0.03+ 0.07)*5+6*0.1=3.2 (4)将二叉排序树中的结点Mar删除,画出经过删除处理后的二叉排序 树 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

9.5已知关键字序列{10,25,33,19,06,49,37,76,60},哈希地址空间为0~ 10,哈希函数为H (Key)=Key % 11, 求: (1)用开放定址线性探测法处理冲突,构造哈希表HT1,分别计算在等 概率情况下HT1查找成功和查找失败的ASL; HT1:HT1[10] = 10; HT1[25]=3; HT1[33]=0; HT1[19]=8; HT1[06]=6; HT1[49]=5; HT1[37]=4; HT1[76]=10; HT1[60]=5. 查找成功ASL:(7+3+3)/9=1.44; 查找失败ASL:(3+2+1+7+6+5+4+3+2+1+4)/11=3.45. 1 2 3 4 5 6 7 8 9 10 33 76 25 37 49 06 60 19 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

9.5已知关键字序列{10,25,33,19,06,49,37,76,60},哈希地址空间为0~ 10,哈希函数为H (Key)=Key % 11, 求: (2)用开放定址二次探测法处理冲突,构造哈希表HT2,计算在等概率 情况下HT2查找成功的ASL; HT2:HT1[10] = 10; HT1[25]=3; HT1[33]=0; HT1[19]=8; HT1[06]=6; HT1[49]=5; HT1[37]=4; HT1[76]=10; HT1[60]=5. 查找成功ASL:(7+3+5)/9=1.67. 1 2 3 4 5 6 7 8 9 10 33 60 25 37 49 06 19 76 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

9.5已知关键字序列{10,25,33,19,06,49,37,76,60},哈希地址空间为0~ 10,哈希函数为H (Key)=Key % 11, 求: (3)用拉链法解决冲突,构造哈希表HT3,计算HT3在等概率情况查找 成功的ASL。 0 -> 33 1 2 3 -> 25 4 -> 37 5 -> 49 -> 60 6 -> 06 7 8 -> 19 9 10 -> 10 -> 76 查找成功ASL:(7+2+2)/9=1.22. 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

课堂测试题: 1. 在二叉排序树中,凡是新插入的点,都是没有_____的。 A. 孩子 B. 关键字 C. 平衡因子 D. 赋值 2 课堂测试题: 1.在二叉排序树中,凡是新插入的点,都是没有_____的。 A. 孩子 B. 关键字 C. 平衡因子 D. 赋值 2.有一个长度为12的有序表,按折半查找法对该表进行查找,在表内各 元素等概率情况下,查找成功所需的平均比较次数为_____。 A. 35/12 B. 37/12 C. 39/12 D. 43/12 3.如下图所示的一棵二叉排序树,其不成功的平均查找长度是_____。 A. 21/7 B. 28/7 C. 15/6 D. 21/6 A B A 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

4.采用分块查找时,若线性表中共有625个元素,查找每个元素的概率 相同,假设采用顺序查找来确定结点所在的块,则每块分为_____个结点 最佳。 A. 9 B. 25 C. 6 D. 625 (提示:教材p.226,容易证明,当s取n^1/2时,ASLbs取最小值n^1/2+1) 5.具有5层结点的AVL树,至少有_____个结点。 A. 10 B. 12 C. 15 D. 17 6.下面关于B-树和B+树的叙述中,不正确的结论是______。 A. B-树和B+树都能有效地支持顺序查找 B. B-树和B+树都能有效地支持随机查找 C. B-树和B+树都是平衡的多路查找树 D. B-树和B+树都可以用于文件索引结构 B B A 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

7.设哈希表长m=12,哈希函数H(key)=key MOD 11。表中已有4个结点, addr(15)=4,,addr(38)=5,addr(61)=6,addr(84)=7,其余地址为空,如用 二次探测再散列法处理冲突,则关键字为49的结点的地址是_____。 A. 8 B. 3 C. 5 D. 9 D 1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

8. 写出折半查找的递归算法 int bin_search(int key[],int low, int high,int k) { {       int mid;       if(low>high)           return -1;       else{           mid = (low+high) / 2;           if(key[mid]==k)               return mid;           if(k>key[mid])               return bin_search(key,mid+1,high,k); /*在序列的后半部分查找*/           else               return bin_search(key,low,mid-1,k); /*在序列的前半部分查找*/       }   }  1. 没有弄清楚<>()的区别 或者说混淆了 以及他们所代表的箭头是什么 2. 把两个图画在一起了 而且有些还不作区别说明 3. 个别题目没看清,少画了几个

排序

以数组(256,301,751,129,937,863,742,694,076,438) 为例,执行以下排序算法,写出每一趟排序结束 时的数组状态(从小到大) (1)直接插入排序 (2)希尔排序(增量d=[5,2,1]) (3)快速排序 (4)堆排序(大根堆) (5)归并排序 (6)直接选择排序

以数组(256,301,751,129,937,863,742,694,076,438)为例,执行 以下排序算法,写出每一趟排序结束时的数组状态 (1)直接插入排序 第一趟: (256,301),751,129,937,863,742,694,076,438 第二趟: (256,301,751),129,937,863,742,694,076,438 第三趟: (129,256,301,751),937,863,742,694,076,438 第四趟: (129,256,301,751,937),863,742,694,076,438 第五趟: (129,256,301,751,863,937),742,694,076,438 第六趟: (129,256,301,742,751,863,937),694,076,438 第七趟: (129,256,301,694,742,751,863,937),076,438 第八趟: (076,129,256,301,694,742,751,863,937),438 第九趟: (076,129,256,301,438,694,742,751,863,937)

以数组(256,301,751,129,937,863,742,694,076,438)为例,执行以 下排序算法,写出每一趟排序结束时的数组状态 (2)希尔排序(增量d=[5,2,1]) 第一趟: 256 863 301 742 751 694 129 076 937 438 256,301,694,076,438,863,742,751,129,937 第二趟: 256 694 438 742 129 301 076 863 751 937 129,076,256,301,438,751,694,863,742,937 第二趟: 076,129,256,301,438,694,742,751,863,937

以数组(256,301,751,129,937,863,742,694,076,438) 为例,执行以下排序算法,写出每一趟排序结束 时的数组状态 (3)快速排序 第一趟: (076,129),256,(751,937,863,742,694,301,438) 第二趟: 076,129,256,(438,301,694,742),751,(863,937) 第三趟: 076,129,256,301,438,(694,742),751,863,937 第四趟: 076,129,256,301,438,694,742,751,863,937

以数组(256,301,751,129,937,863,742,694,076,438) 为例,执行以下排序算法,写出每一趟排序结束 时的数组状态 (4)堆排序(大根堆) 第一趟: (937,694,863,256,438,751,742,129,076,301)建立初始大根堆

以数组(256,301,751,129,937,863,742,694,076,438) 为例,执行以下排序算法,写出每一趟排序结束 时的数组状态 (4)堆排序(大根堆) 第一趟: (937,694,863,256,438,751,742,129,076,301)建立初始大根堆 第二趟:

以数组(256,301,751,129,937,863,742,694,076,438) 为例,执行以下排序算法,写出每一趟排序结束 时的数组状态 (4)堆排序(大根堆) 第一趟: (937,694,863,256,438,751,742,129,076,301)建立初始大根堆 第二趟: (863,694,751,256,438,301,742,129,076),937

以数组(256,301,751,129,937,863,742,694,076,438)为例,执行 以下排序算法,写出每一趟排序结束时的数组状态 (4)堆排序(大根堆) 第一趟: (937,694,863,256,438,751,742,129,076,301) 建立初始大根堆 第二趟: (863,694,751,256,438,301,742,129,076),937 第三趟: (751.694.742.256.438.301.742.129),863.937 第四趟: (742,694,301,256,438,129,076),751,863.937 第五趟: (694,438,301,256,076,129),742,751,863.937 第六趟: (438,256,301,129,076),694,742,751,863.937 第七趟: (301,256,076,129),438,694,742,751,863.937 第八趟: (256,129,076),301,438,694,742,751,863.937 第九躺: 076,129,256,301,438,694,742,751,863,937

以数组(256,301,751,129,937,863,742,694,076,438) 为例,执行以下排序算法,写出每一趟排序结束 时的数组状态 (5)归并排序 第一趟: [256],[301],[751],[129],[937],[863],[742],[694],[076],[ 438] 第二趟: [256,301],[129,751],[863,937],[694,742],[076,438] 第三趟: [129,256,301,751],[694,742,863,937],[076,438] 第四趟: [129,256,301,694,742,751,863,937],[076,438] 第五趟: [076,129,256,301,438,694,742,751,863,937]

以数组(256,301,751,129,937,863,742,694,076,438)为例,执行 以下排序算法,写出每一趟排序结束时的数组状态 (6)直接选择排序 第一趟: 076,301,751,129,937,863,742,694,256,438 第二趟: 076,129,751,301,937,863,742,694,256,438 第三趟: 076,129,256,301,937,863,742,694,751,438 第四趟: 076,129,256,301,937,863,742,694,751,438 第五趟: 076,129,256,301,438,863,742,694,751,937 第五趟: 076,129,256,301,438,742,863,694,751,937 第六趟: 076,129,256,301,438,742,694,863,751,937 第七躺: 076,129,256,301,438,742,694,751,863,937 第八趟: 076,129,256,301,438,742,694,751,863,937 第九趟: 076,129,256,301,438,742,694,751,863,937

1.在下列排序算法中,时间复杂度不受数据初始特 性影响,恒为O(n2)的是( )。 A)插入排序 B)冒泡排序 C)选择排序 D)堆 排序 2.对n个不同的排序码进行冒泡排序,在元素无序的 情况下比较的次数最多为( ). A)n+1 B)n C)n-1 D) n(n-1)/2 3.插入排序算法在每一趟都能选取出一个元素放在 其最终的位置上。( ) A)正确 B)不正确

1.在下列排序算法中,时间复杂度不受数据初始特 性影响,恒为O(n2)的是(C)。 A)直接插入排序 B)冒泡排序 C)直接选择排 序 D)堆排序

2.对n个不同的排序码进行冒泡排序,在元素无序的 情况下比较的次数最多为(D) A)n+1 B)n C)n-1 D) n(n-1)/2 解: 比较次数最多时元素是逆序的,需要n-1趟排序 第一趟,比较n-1次,确定第n个数据元素 第二趟,比较n-2次,确定第n-1个数据元素 第三趟,比较n-3次,确定第n-2个数据元素 … 第n-1趟,比较1次,确定第1、2个数据元素 总的比较次数=(n-1)+(n-2)+…+1=n(n-1)/2 n-1个

3.插入排序算法在每一趟都能选取出一个元素放在 其最终的位置上。( B ) A)正确 B)不正确 第一趟: (256,301),751,129,937,863,742,694,076,438 第二趟: (256,301,751),129,937,863,742,694,076,438 第三趟: (129,256,301,751),937,863,742,694,076,438 第四趟: (129,256,301,751,937),863,742,694,076,438 第五趟: (129,256,301,751,863,937),742,694,076,438 第六趟: (129,256,301,742,751,863,937),694,076,438 第七趟: (129,256,301,694,742,751,863,937),076,438 第八趟: (076,129,256,301,694,742,751,863,937),438 第九趟: (076,129,256,301,438,694,742,751,863,937)

能否用小于等于2n-3次的方法寻找到最大值和最小 值? 对于一个长度为n的数组[a1,a2,…,an],通常来说, 寻找一个最大值需要n-1次,再在剩下的n-1个数中 寻找最小值需要n-2次,因此,从数组中选择最大 值和最小值需要(n-1)+(n-2)=2n-3次 能否用小于等于2n-3次的方法寻找到最大值和最小 值? 解:利用快速排序的思想,利用a1 为支点,将数组分为两个表,需要比较n-1次,设小于a1 表长为x,小于a1 表长为y。 对于左子表,需要比较x-1次 对于右子表,需要比较y-1次 共需要比较(n-1)+(x-1)+(y-1)=n+(x+y)-3=2n-4

已知一个单链表由3000个元素组成,每个元素是 一整数,其值在1~1000000之间。试问,在排序算 法中,哪些排序算法比较适用于链表的排序问题 ? 解:理论排序算法均可实现。 但是单链表的特点是顺序查找并进行操作, 所以比较适用于单链表的排序方法有:直接插入排序,起泡排序,简单选择排序。