3.已知长度为12的表(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)。
(1) 试按表中元素的顺序依次插入一棵初始为空的二叉排序树,请画出插入完成之后的二叉排序树,并求其在等概率情况下查找成功的平均查找长度。
(2) 若对表中元素先进行排序构成有序表,求在等概率情况下对此有序表进行折半查找时查找成功的平均查找长度,并画出相应的判定树。
解:(1)
Jan
Feb Mar
Apr June May
Aug July Sep
Dec Oct
Nov
在等概率情况下平均查找长度=(1*1+2*2+3*3+4*3+5*2+6*1)/12 =7/2 (2)经排序后的表及在折半查询时找到表中元素所需比较的次数为:Apr Aug Dec Feb Jan July June Mar May Nov Oct Sept
3 4 2 3 4 1 3 4 2 4 3 4
在等概率情况下平均查找长度=(1*1+2*2+3*4+4*5)=37/12
5.用以下关键字序列构造两个哈希表(每个哈希表的地址空间为0~16):(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec)。H(x) = i DIV 2,其中i为关键字x中第一个字母在字母表中的序号。
(1) 用线性探测再散列法处理冲突;
(2) 用链地址法处理冲突。
并分别求这两个哈希表在等概率情况下查找成功的平均查找长度。解:
(1)
在等概率情况下平均查找长度=(1+2+1+1+1+1+2+4+5+2+5+6)/12 =31/12
(2)
在等概率情况下平均查找长度=(1+2+1+1+1+2+3+1+2+1+2+1)/12 =18/12
7.有一组待排序的记录,其关键字为18,5,20,30,9,27,6,14,45,22。写出用下列方法进行排序时,每一趟排序后的结果及关键字比较次数。
(1) 直接插入排序;
(2) 简单选择排序;
(3) 冒泡排序;
(4) 快速排序;
(5) 归并排序。
解:
假设以从小到大排序:
1.直接插入排序
第一步:{5,18} 20,30,9,27,6,14,45,22 比较1次
第二步:{5,18,20} 30,9,27,6,14,45,22 比较2次
第三步:{5,18,20,30} 9,27,6,14,45,22 比较3次
依次类推……
2.简单选择排序:
第一步:{5} 18,20,30,9,27,6,14,45,22 比较9次
第二步:{5,6} 18,20,30,9,27,14,45,22 比较8次
第三步:{5,6,9} 18,20,30,27,14,45,22 比较7次
依次类推(每次选出最小的出来)……
3.冒泡排序:
第一步:{5,18,20,9,27,6,14,30,22} 45 比较9次
第二步:{5,18,9,20,6,14,27,22} 30,45 比较8次
第三步:{5,9,18,6,14,20,22} 27,30,45 比较7次
依次类推(比较相邻的,逆序的话则互换)……
4.快速排序:
第一步:{14,5,6,9} 18 {27,30,20,15,22} 比较9次
第二步:{9,5,6} 14,18 {22,20} 27 {45,30} 比较7次
第三步:{6,5} 9,14,18,20,22,27,30,45 比较4次
第四步:5,6,9,14,18,20,22,27,30,45 比较1次
5.归并排序(以2-路归并为例):
原序列:{18,5} {20,30} {9,27} {6,14} {45,22}
第一步:{5,18} {20,30} {9,27} {6,14} {22,45} 比较5次第二步:{5,18,20,30}{6,9,14,27} {22,45} 比较5次
第三步:{5,6,9,14,18,20,27,30} {22,45} 比较7次
第四步:{5,6,9,14,18,20,22,27,30,45} 比较9次
陕西科技大学实验报告 班级学号姓名实验组别 实验日期室温报告日期成绩 报告内容:(目的和要求、原理、步骤、数据、计算、小结等) 实验名称:查找与排序算法的实现和应用 实验目的: 1. 掌握顺序表中查找的实现及监视哨的作用。 2. 掌握折半查找所需的条件、折半查找的过程和实现方法。 3. 掌握二叉排序树的创建过程,掌握二叉排序树查找过程的实现。 4. 掌握哈希表的基本概念,熟悉哈希函数的选择方法,掌握使用线性探测法和链地址法进行冲突解决的方 法。 5. 掌握直接插入排序、希尔排序、快速排序算法的实现。 实验环境(硬/软件要求):Windows 2000,Visual C++ 6.0 实验内容: 通过具体算法程序,进一步加深对各种查找算法的掌握,以及对实际应用中问题解决方 法的掌握。各查找算法的输入序列为:26 5 37 1 61 11 59 15 48 19输出 要求:查找关键字37,给出查找结果。对于给定的某无序序列,分别用直接插入排序、希尔排序、快速排序等方法进行排序,并输出每种排序下的各趟排序结果。 各排序算法输入的无序序列为:26 5 37 1 61 11 59 15 48 19。 实验要求: 一、查找法 1. 顺序查找 首先从键盘输入一个数据序列生成一个顺序表,然后从键盘上任意输入一个值,在顺序 表中进行查找。 2. 折半查找
任意输入一组数据作为个数据元素的键值,首先将此序列进行排序,然后再改有序表上 使用折半查找算法进对给定值key 的查找。 3. 二叉树查找 任意输入一组数据作为二叉排序树中节点的键值,首先创建一颗二叉排序树,然后再次二叉排序树上实现对一 定k的查找过程。 4. 哈希表查找 任意输入一组数值作为个元素的键值,哈希函数为Hash (key )=key%11, 用线性探测再散列法解决冲突问题。 二、排序算法 编程实现直接插入排序、希尔排序、快速排序各算法函数;并编写主函数对各排序函数进行测试。 实验原理: 1. 顺序查找: 在一个已知无(或有序)序队列中找出与给定关键字相同的数的具体位置。原理是让关键字与队列中的数从最后一个开始逐个比较,直到找出与给定关键字相同的数为止,它的缺点是效率低下。 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以
小学句子排序方法及习题 怎样排列顺序错乱的句子? 把排列错乱的句子整理成一段通顺连贯的话,能训练对句子的理解能力、有条理表达能力和构段能力。这样的练习一般可按五步进行。 第一步,仔细阅读每句话或每组句子,理解它们的主要内容; 第二步,综合各句的意思,想想这些话主要说的是什么内容; 第三步,想想全段的内容按什么顺序排列好,即找出排列顺序的依据,如,是按事情发展顺序,还是时间顺序,或方位,还是“总分”等; 第四步,按确定的排列依据排列顺序; 第五步,按排好的顺序仔细读两遍,看排得对不对,如发现有的句子排得位置不对,就进行调整,直到这段话排得通顺连贯为止。把错乱的句子排列好,这是小学阶段语文练习中的一个重要形式,必须好好掌握。学会排列句子,不仅能提高我们的思维能力,还能提高我们的写作能力。
那么,如何学会排列好句子呢?我们可以按下列方法进行。 一、按事情发展的顺序排列。有些错乱的句子,我们在排列时,应仔细分析句与句之间的联系。常见的错乱句子,往往叙述了一件完整的事,或者活动的具体过程。那么,我们就可以按事情发展的顺序来排列。 二、按时间先后顺序排列。对一些错乱的句子,我们可以找出表示时间概念的词语,如,早晨、上午、中午、下午等词,然后按时间先后顺序进行排列句子。 三、按先总述后分述的顺序排列。根据这段话的特点,找出这句话是个中心句,其他句子都是围绕着这句话来说的。显而易见,我们可按先总后分的顺序来排列句子。 四、按空间推移的顺序排列。所谓空间推移,就是由地点的转移,表达出不同的内容。排列时,要十分注意,不要与其他的方法相混淆。 把错乱的句子排列好,这是小学阶段语文练习中的一个重要形式,必须好好掌握。学会排列句子,不仅能提高我们的思维能力,还能提高我们的写作能力。
实验六、七:查找、排序算法的应用 班级 10511 学号 20103051114 姓名高卫娜 一、实验目的 1 掌握查找的不同方法,并能用高级语言实现查找算法。 2 熟练掌握顺序表和有序表的顺序查找和二分查找方法。 3 掌握排序的不同方法,并能用高级语言实现排序算法。 4 熟练掌握顺序表的选择排序、冒泡排序和直接插入排序算法的实现。 二、实验内容 1 创建给定的顺序表。表中共包含八条学生信息,信息如下: 学号姓名班级C++ 数据结构 1 王立03511 85 76 2 张秋03511 78 88 3 刘丽03511 90 79 4 王通03511 7 5 86 5 赵阳03511 60 71 6 李艳03511 58 68 7 钱娜03511 95 89 8 孙胜03511 45 60 2 使用顺序查找方法,从查找表中查找姓名为赵阳和王夏的学生。如果查找成功,则显示该生的相关信息;如果查找不成功,则给出相应的提示信息。 3 使用二分查找方法,从查找表中查找学号为7和12的学生。如果查找成功,则显示该生的相关信息;如果查找不成功,则给出相应的提示信息。(注意:创建静态查找表时必须按学号的从小到大排列!) 4 使用直接插入排序方法,对学生信息中的姓名进行排序。输出排序前和排序后的学生信息表,验证排序结果。 5 使用直接选择排序方法,对学生信息中的C成绩进行排序。输出排序前和排序后的学生信息表,验证排序结果。 6 使用冒泡排序方法,对学生信息中的数据结构成绩进行排序。输出排序前和排序后的学生信息表,验证排序结果。 7 编写一个主函数,将上面函数连在一起,构成一个完整程序。 8 将实验源程序调试并运行。 三、实验结果 源程序代码为: #include
实验七查找、排序的应用 一、实验目的 1、本实验可以使学生更进一步巩固各种查找和排序的基本知识。 2、学会比较各种排序与查找算法的优劣。 3、学会针对所给问题选用最适合的算法。 4、掌握利用常用的排序与选择算法的思想来解决一般问题的方法和技巧。 二、实验内容 [问题描述] 对学生的基本信息进行管理。 [基本要求] 设计一个学生信息管理系统,学生对象至少要包含:学号、姓名、性别、成绩1、成绩2、总成绩等信息。要求实现以下功能:1.总成绩要求自动计算; 2.查询:分别给定学生学号、姓名、性别,能够查找到学生的基本信息(要求至少用两种查找算法实现); 3.排序:分别按学生的学号、成绩1、成绩2、总成绩进行排序(要求至少用两种排序算法实现)。 [测试数据] 由学生依据软件工程的测试技术自己确定。 三、实验前的准备工作 1、掌握哈希表的定义,哈希函数的构造方法。 2、掌握一些常用的查找方法。 1、掌握几种常用的排序方法。 2、掌握直接排序方法。
四、实验报告要求 1、实验报告要按照实验报告格式规范书写。 2、实验上要写出多批测试数据的运行结果。 3、结合运行结果,对程序进行分析。 五、算法设计 a、折半查找 设表长为n,low、high和mid分别指向待查元素所在区间的下界、上界和中点,key为给定值。初始时,令low=1,high=n,mid=(low+high)/2,让key与mid指向的记录比较, 若key==r[mid].key,查找成功 若key 实验四:查找与排序 【实验目的】 1.掌握顺序查找算法的实现。 2.掌握折半查找算法的实现。 【实验内容】 1.编写顺序查找程序,对以下数据查找37所在的位置。 5,13,19,21,37,56,64,75,80,88,92 2.编写折半查找程序,对以下数据查找37所在的位置。 5,13,19,21,37,56,64,75,80,88,92 【实验步骤】 1.打开VC++。 2.建立工程:点File->New,选Project标签,在列表中选Win32 Console Application,再在右边的框里为工程起好名字,选好路径,点OK->finish。 至此工程建立完毕。 3.创建源文件或头文件:点File->New,选File标签,在列表里选C++ Source File。给文件起好名字,选好路径,点OK。至此一个源文件就被添加到了你刚创建的工程之中。 4.写好代码 5.编译->链接->调试 #include "stdio.h" #include "malloc.h" #define OVERFLOW -1 #define OK 1 #define MAXNUM 100 typedef int Elemtype; typedef int Status; typedef struct { Elemtype *elem; int length; }SSTable; Status InitList(SSTable &ST ) { int i,n; ST.elem = (Elemtype*) malloc (MAXNUM*sizeof (Elemtype)); if (!ST.elem) return(OVERFLOW); printf("输入元素个数和各元素的值:"); scanf("%d\n",&n); for(i=1;i<=n;i++) { scanf("%d",&ST.elem[i]); } ST.length = n; return OK; } int Seq_Search(SSTable ST,Elemtype key) { int i; ST.elem[0]=key; for(i=ST.length;ST.elem[i]!=key;--i); return i; } int BinarySearch(SSTable ST,Elemtype key) { int low,high,mid; low=1; high=ST.length; 小学语文句子排序练习题 1 ()碧溪河从村前流过。 ()村后是一望无际的桑园。 ()我家住在碧溪河边,这是江南水乡的小村庄。 ()河里一群小鱼在水中游来游去,水面上不时溅起朵朵水花。 ()春天,桑树抽出新芽,整个桑园就像绿色的海洋。 2 ()一些不知名的小花,长在绿草中,像蓝天上缀着的星星。 ()小花园在教室的左边,长八米,宽四米。 ()花园里四周的道路上都长满了青草,好象铺了一层绿毯。 ()它紧靠短墙,由一排横、两排竖的篱笆和这面短墙围起来。 ()花是老师精心栽培的,有的长在地上,有的长在盆里,构成了一个个图案。 ()到了夏天,大的、小的、圆的、长的、各种形状的绿叶,托着红的、黄的、蓝的、白的各色各样的花儿,美丽极了! 3 ()地上的水越来越多。 ()雨落在对面的屋顶的瓦片上。 ()像一层薄烟罩在屋顶上。 ()渐渐地连成了一条线。 ()溅起一朵朵水花。 ()雨水顺着房檐流下来。 ()汇合成一条条小溪。 ()开始像断了线的珠子。 4 ()王红同学真值得我们学习。 ()今天,老天爷一直紧绷着脸,阴沉沉的,好象跟谁生气似的。 ()就在这个时候,我看见一个女同学飞快地朝操场奔去。 ()天突然下起雨来。 ()啊!那是三年级(4)班的王红。 ()下午放学的时候,同学们背起书包正准备回家。 ()原来,她是冒雨去降国旗的。 ()红领巾在她胸前飘动,就像一束跳动的火苗。 5 ()我们坐在河边柳树下,放下了鱼钩。 ()忽然,浮标一沉,我急忙把鱼竿往上一提,一条银白色的小鱼钓上来了。 ()星期天早晨,我和小明扛着鱼竿到郊外去钓鱼。 ()浅红色的浮标漂在水面上。 ()我们高兴地把鱼竿举在空中,摇晃着,喊着:“我们钓着鱼了!” 6 ()他正想坐下时,管理员对他说:“先生,请你不要坐在这里,这里是马克思的座位。” ()管理员笑着说:“是的,很多年来,他每天都到这里来读书。” ()那个读者问:“他每天都来吗?你是说他今天一定会来?” ()话刚说完,马克思果然跨进门来了。 ()一天清早,伦敦大英博物馆里,有位读者看见有个座位空着,便走了过来。 电子科技大学实验报告 课程名称:数据结构与算法 学生姓名: 学号: 点名序号: 指导教师: 实验地点:基础实验大楼 实验时间: 5月20日 2014-2015-2学期 信息与软件工程学院查找与排序实验报告
最新人教版小学四年级语文句子排序练习题附答案
实验报告-排序与查找