- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;;本章重点难点;查找和排序是数据处理过程的主要操作;;1.查找的概念;;?;;1.设“监视哨”的顺序查找;2)算法流程与实现;3)平均查找长度;2.折半查找
;2)算法流程与实现;例10-1已知待查序列为:2,5,9,13,18,26,32。待查关键字K分别为13、32和4,试写出折半查找过程。;3)折半查找判定树;例10-2试构造具有9个结点的折半查找判定树,并求查找成功的平均查找长度ASL。;3.二叉查找树查找;2)二叉查找树上的查找
由于二叉查找树的特殊性质,查找可以比较方便地实现。其过程如下:
1)查找从树的根结点开始,如果树为空,返回NULL,表示未找到关键字为key的结点。
2)查找树非空,则根结点关键字和key进行比较,依据比较结果,需要进行不同的处理:
若根结点关键字小于key,则在此根结点的右子树中继续进行查找;
若根结点关键字大于key,则在此根结点的左子树中继续进行查找;
若两者比较结果是相等,查找完成,返回指向此结点的指针。
;3)构造二叉查找树的方法
已知一个关键字序列,构造二叉查找树的方法通常是通过逐个插入序列中的关键字来完成的。以下是一种常见的方法:
创建一个空的二叉查找树。
从序列中取出第一个关键字作为根结点,将其插入到二叉查找树中。
对于序列中的每个后续关键字,按照以下规则进行插入:
从根结点开始,递归地比较要插入关键字和当前结点关键字。
如果要插入关键字小于当前结点的关键字,则向其左子树移动;如果该大于当前结点的关键字,则向其右子树移动。
重复步骤③直到遇到一个空的子结点(即空指针),表示找到了插入位置,将要插入关键字作为新结点插入到这个空的子结点位置。
重复步骤③和④,直到遍历完整个序列,插入所有关键字为止。
;;4)二叉查找树上结点的平均查找长度
;;内部排序:是指待排序数据元素存放在计算机随机存储器中进行的排序过程。
外部排序:指待排序数据元素的数量较大,内存一次不能容纳全部数据元素,在排序过程中尚需对外存进行访问的排序过程;;根据排序方法进行一趟的基本操作不同,内部排序方法分为下面几大类:;基于“选择”思想的排序方法;1.直接插入排序;?;2.冒泡排序
基本思想是对所有相邻元素的关键字进行比较,如果是逆序,则将其交换,最终达到有序。冒泡排序方法简单,应用广泛。;?;3.直接选择排序;?;;例10-8青年歌手大赛,有10位评委进行打分,每位选手的最后得分为:去掉1个最高分和1个最低分后,8位评委的总分。要求编写一个通用程序,输入各选手的编号、各位评委的评分,输出各选手的编号、总分及名次。
采用模块化思想,可设置4个函数如下:
①sum1函数。计算各选手总分。
②sort1函数。应用冒泡排序方法,总分由高到低排序。
③print1函数。输出各选手的编号、总分和名次。
④main主函数。输入各选手的编号、各位评委的评分,分别调用以上3个函数。
定义标识符说明:
M:符号常量,设有10位评委。
N:符号常量,设有5位选手。
a[1..M]:10位评委的打分。
b[1..N]:5位选手最后得分。
c[1..N]:选手的编号。
;intsum1(intx[],intn) /*计算各位选手总分*/
{
inti,max,min,s; /*max和min分别记录最高分和最低分,s记录评分和*/
max=min=s=x[1]; /*设置初值*/
for(i=2;i=n;i++)
{
if(x[i]max)max=x[i]; /*求最高分*/
if(x[i]min)min=x[i]; /*求最低分*/
s=s+x[i]; /*评委总分*/
}
s=s-max-min; /*去掉1个最高分和1个最低分后选手的最后得分*/
returns;
}
;voidsort1(intx[],inty[],intn) /*选手总分由高到低排序*/
{
inti,j,m;
for(i=1;i=n-1;i++)
for(j=1;j=n-i;j++)
if(x[j]x[j+1])
{
m=x[j];x[j]=x[j+1];x[j+1]=m;/*总分交换*/
m=y[j];y[j]=y[j+1];y[j+1]=m;/*编号交换*/
}
}
您可能关注的文档
- 计算机软件基础课件:SQL语言.pptx
- 计算机软件基础课件:操作系统概述.pptx
- 计算机软件基础课件:查找技术.pptx
- 计算机软件基础课件:程序的控制结构.pptx
- 计算机软件基础课件:非线性数据结构.pptx
- 计算机软件基础课件:函数.pptx
- 计算机软件基础课件:结构类型.pptx
- 计算机软件基础课件:排序.pptx
- 计算机软件基础课件:软件工程概述.pptx
- 计算机软件基础课件:树和二叉树.pptx
- 某县纪委监委开展“校园餐”突出问题专项整治工作汇报22.docx
- 中小学校园食品安全与膳食经费管理专项整治工作自查报告66.docx
- 某县委常委、宣传部部长年度民主生活会“四个带头”个人对照检查发言材料.docx
- XX县委领导班子年度述职述廉报告3.docx
- 某县纪委关于校园餐问题整治工作落实情况的报告.docx
- 中小学校园食品安全与膳食经费管理专项整治工作自查报告22.docx
- 某县税务局党委领导班子年度民主生活会“四个带头”对照检查材料.docx
- 某县委书记在县委常委班子年度民主生活会专题学习会上的讲话.docx
- 某县纪委校园餐问题整治工作落实情况的报告.docx
- 某区委副书记、区长年度民主生活会对照检查材料.docx
文档评论(0)