对分查找

合集下载

对分查找算法及程序实现

对分查找算法及程序实现

对分查找算法及程序实现一、设计思想对分查找是计算机科学中的一个基础算法。

对于一个基础算法的学习,同样可以让学生在一定的情境下,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程。

本堂课以一个游戏暖场,同时激活学生的思维,引导学生去探索游戏或生活背后的科学原理。

为了让学生在教师的引导下能自我解析算法的形成过程,本课分解了问题动作,找出问题的全部可能情况,在对全部可能情况总结归纳的情况下,得出对分查找的基础算法,最后在程序中得到实现,从而使学生建立起对分查找算法形成的科学逻辑结构。

二、教材分析本课的课程标准内容:(一)计算机解决问题的基本过程(1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。

(三)算法与问题解决例举 C 查找、排序与问题解决(2)通过实例,掌握使用数据查找算法设计程序解决问题的方法。

本课的《学科教学指导意见》内容:基本要求:1.初步掌握对分查找算法。

2.初步掌握对分查找算法的程序实现。

教材内容:第二章算法实例2.4.3对分查找和第五章5.4查找算法的程序实现,课题定为对分查找算法及程序实现,安排两个课时,第一课时着重是对分查找算法的形成和初步程序实现,第二课时利用对分查找算法解决一些实际问题的程序实现,本教学设计为第一课时。

从《课程标准》和《学科教学指导意见》对本课教学内容的要求来看,要求学生能从问题出发,通过相应的科学步骤形成对分查找的算法。

对学生来说,要求通过这一课时的学习能初步掌握或了解对分查找的前提条件、解决问题的对象,明确对分查找算法结构和对分查找的意义。

三、学情分析学生应该已经掌握程序设计的基本思想,掌握赋值语句、选择语句、循环语句的基本用法和VB基本操作,这节课学生可能会遇到的最大问题是:如何归纳总结对分查找解决不同情况问题的一般规律,鉴于此,在教学中要积极引导学生采取分解动作、比较迁移等学习策略。

对分查找算法及程序实现

对分查找算法及程序实现

例题:对分查找
1、首先在通用声明事件里定义数组d变量为全局变量。 Dim d(1 To 10) As Integer
2、程序一运行,生成10个3位整数,显示在标签1中。 Private Sub Form_Load() Label1.Caption = "" Randomize For i = 1 To 10 d(i) = Int(Rnd * 101 + 100) Label1.Caption = Label1.Caption & d(i) & " " Next i End Sub
数组d( ): Key=52
下标
元素
1 2 3
10 15 17
4
我们用变量 I和J记录所 要查找范围的起始和终止 位置
18
22 27 35 45
5 6 7 8 9 10
48
52 65 67 72
i=9
第2次比较后: Key<d(m) 查找范围应该 变成d(9)~d(11)
11
12 13 14 15 16
对分查找程序的基本框架: Private Sub Command1_Click() i = 1: j = n Do While i <= j m = (i + j) \ 2 If d(m) = Key Then '输出结果,退出查找(代码略) ElseIf Key < d(m) Then j=m-1 Else i=m+1 End If Loop End Sub
设置第一数和第n数 求中间数
1.下列有关查找的说法,正确的是 A.顺序查找时,被查找的数据必须有序 B.对分查找时,被查找的数据不一定有序 C.顺序查找总能找到要查找的关键字 D.一般情况下,对分查找的效率较高

对分查找变形题

对分查找变形题

VB程序编写挑战木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的。

当然,希望得到的小段越长越好。

现在用VB编写程序计算能够得到的小段木头的最大长度(木头长度的单位是cm,原木的长度都是正整数,要求切割得到的小段木头的长度也是正整数)。

功能如下:
文本框Text1里面输入正整数n,文本框Text2里输入k(1<=n<=10,1<=k<=100),n是原木的数量,k是需要得到的小段的数量,文本框Text3里依次输入n个数,每个数表示一根原木的长度,用keypress事件来完成每输入一个数,按回车,将其赋值给数组a(i)。

Label5中显示能够切割得到的小段的最大长度。

如果连1cm长的小段都切不出来,则输出“0”。

运行效果如第17题图
所示,其中文本框Text3
中依次输入3根原木的长
度为:232,124,456。


编写实现上述功能的VB
程序。

对分查找

对分查找

28
35
46
58
60
i
mid
j
Key>d(mid) i=mid+1
Mid=(i+j)\2
若用一个数组d(1)到d(11)来存放升序的 元素序列,查找键Key为12
1 2 3 4 5 6 7 8 9 10 11
6
12
15
18
22
25
28
35
46
58
60
j i
mid Key=d(mid) 输出:Mid=2 Mid=(i+j)\2
若用一个数组d(1)到d(11)来存放升序的 元素序列,查找键Key为12
1 2 3 4 5 6 7 8 9 10 11
6
12
15
18
22
25
28
35
46
58
60
i
mid Key<d(mid)
j
j=mid-1
Mid=(i+j)\2
若用一个数组d(1)到d(11)来存放升序的 元素序列,查找键Key为12
对分查找(有序数组)
• 对分查找的基本思想:首先将查找键与有序数 组内处于中间位置的元素进行比较,如果中间 位置上的元素数值与查找键相同,表示找到, 否则根据数组元素的有序性,就可确定应该在 数组的前半部分还是后半部分继续进行查找。 在新确定的范围内,继续按上述方法进行查找, 直到获得最终结果。
• 对分查找是一种效率很高的查找方法,但被查 找的数据必须是有序的。
若用一个数组d(1)到d(11)来存放升序的 元素序列,查找键Key为12
1 2 3 4 5 6 7 8 9 10
11
6

对分搜索法动态演示程序设计

对分搜索法动态演示程序设计

对分搜索法动态演示程序设计摘要:算法是程序设计的灵魂,也是语言课教学的难点,在教学法过程中,如果能加以计算机辅助教学,可以提高教学效果,同时编写这样的程序可大大增强学生的学习兴趣,提高学生的编程能力。

由于算法比较抽象,因此要理解和掌握其中的原理就比较困难。

通过对二分查找法的动态演示,让学生能更好地了解算法的来龙去脉,抓住算法的本质,从而激发了对程序设计这门课的学习兴趣。

关键词:对分查找法;动态演示;控件移动对于抽象的、难以理解的算法单纯地靠老师在讲台上讲和在黑板上画图,很难讲清楚,学生也似懂非懂。

如果制成动画,动态地,一步一步地演示,将深奥理论和逻辑推理的内容,直观、形象、清晰地展现在学生面前,使学生在头脑中产生一个深刻的印象,就会起到事半功倍的效果,使得本来索然无味的计算机编程课变得生动有趣、高效而又充满活力。

1.对分查找法的基本思想对分查找法又称折半查找,它的基本思路是:首先取有序数列的中间数据,与查找值c进行比较。

如果正好是要查找的数据,则查找成功,结束查找。

如果中间数据大于要查找的值c,则将小于中间数据的(即左半部分)一半对分,找出其中间值再与比较;如果中间数据小于要查找的值c,则将大于中间数据的(即右半部分)一半对分,再次进行比较。

根据比较结果,再对分相应的数据段。

如此对分比较下去,直找到要查找的数或当左端点l>r(右端点)为止。

其具体方法是:设置三个位置指针,即左端点指针l,中间位置指针m,右端点指针r,假设有序数列为a(1 to 12)左端点指针l=1,右端点指针r=12,中间位置指针m=int((l+r)/2)1.1判断待查数x是否等于a(m)(中间数),如果是,则已找到,查找停止,否则继续下去;1.2判断待查数x是否小于a(m)(中间数),如果是,则必定落在左端点指针l和中间位置指针m-1的范围之内,下一步查找只需在这个范围内进行,左端点指针l指向不变,右端点指针r=m-1;1.3如果x大于a(m)(中间数),x必定落在右端点指针r和中间位置指针m+1的范围之内,下一步查找只需在这个范围内进行,右端点指针r指向不变,左端点指针l=m+1。

对分查找算法教案(5篇)

对分查找算法教案(5篇)

对分查找算法教案(5篇)第一篇:对分查找算法教案对分查找算法教案一、设计思想对分查找是计算机科学中的一个基础算法。

对于一个基础算法的学习,同样可以让学生在一定的情境下,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程。

本堂课以一个游戏暖场,同时激活学生的思维,引导学生去探索游戏或生活背后的科学原理。

为了让学生在教师的引导下能自我解析算法的形成过程,本课分解了问题动作,找出问题的全部可能情况,在对全部可能情况总结归纳的情况下,得出对分查找的基础算法,最后在程序中得到实现,从而使学生建立起对分查找算法形成的科学逻辑结构。

二、教材分析本课的课程标准内容:(一)计算机解决问题的基本过程(1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。

(三)算法与问题解决例举 C 查找、排序与问题解决(2)通过实例,掌握使用数据查找算法设计程序解决问题的方法。

本课的《学科教学指导意见》内容:基本要求:1.初步掌握对分查找算法。

2.初步掌握对分查找算法的程序实现。

教材内容:第二章算法实例 2.4.3对分查找和第五章5.4查找算法的程序实现,课题定为对分查找算法及程序实现,安排两个课时,第一课时着重是对分查找算法的形成和初步程序实现,第二课时利用对分查找算法解决一些实际问题的程序实现,本教学设计为第一课时。

从《课程标准》和《学科教学指导意见》对本课教学内容的要求来看,要求学生能从问题出发,通过相应的科学步骤形成对分查找的算法。

对学生来说,要求通过这一课时的学习能初步掌握或了解对分查找的前提条件、解决问题的对象,明确对分查找算法结构和对分查找的意义。

三、学情分析学生应该已经掌握程序设计的基本思想,掌握赋值语句、选择语句、循环语句的基本用法和VB基本操作,这节课学生可能会遇到的最大问题是:如何归纳总结对分查找解决不同情况问题的一般规律,鉴于此,在教学中要积极引导学生采取分解动作、比较迁移等学习策略。

信号工考试:铁路信号工三

信号工考试:铁路信号工三

信号工考试:铁路信号工三1、填空题移频自动闭塞中继点的接受盒不控制通过信号机的显示,接受盒的UJ、LJ可用1个()继电器代替。

正确答案:绿、黄2、填空题当地面发送的信息不变时,机车信号应()不变。

答案(江南博哥):保持3、填空题TYJL—II型计算机联锁系统通信正常时,表示各微机间通信状态的指示灯应不停地()。

正确答案:闪烁4、单选JT-C系列机车信号记录器以插件形式插在机车信号主机机箱内,对机车信号的()信息进行直接的采集。

A.输入输出B.感应C.点灯输出D.输入正确答案:A5、单选在调度集中区段的信号设备控制方式采用()控制。

A.一级B.二级C.三级D.四级正确答案:B6、单选机车信号接收线圈必须安装在机车第一导轮的()。

A、前方B、后方C、上方D、不限正确答案:A7、填空题第二种调车中途返回解锁是在调车车列()折返信号机内方后开始解锁的。

正确答案:完全进入8、填空题JT-C型机车信号主机板动态监督电路U7芯片的型号是()。

正确答案:74HC049、填空题JTl-CZ2000型机车信号通过()控制,可以强行设置A机或B机为工作机或备机,为系统自动测试提供了基础。

正确答案:外部切换10、填空题信息移频滤波盘用于电气化区段,用来抑制牵引电流的()及其谐波对移频自动闭塞设备的干扰。

正确答案:基波11、问答题《计规》对机车信号设备的绝缘标准是如何规定的?正确答案:安装于机车上的机车信号与列车超速防护设备的导电部分与机车车体的绝缘电阻(切断电源),用500V兆欧表测试时:蒸汽机车不小于0.2MΩ;电力、内燃机车不小于1MΩ;其配线及引入线的线间相互绝缘电阻不小于0.2M Ω。

机车信号与列车超速防护单项设备导电部分与其外壳间的绝缘电阻不小于25MΩ。

机车接收线圈与其外壳间的绝缘电阻不小于1MΩ。

连续式及接近连续式机车信号接收线圈的外壳上下两部分间的绝缘电阻不小于0.2MΩ。

12、单选TYJL-Ⅱ型计算机联锁系统,电务维修机显示屏上的提示栏,显示提示信息和()。

顺序查找和对分查找

顺序查找和对分查找
在查找范围(I,j)内,可以利用数据的有序性,而不必逐个地进行 查找,计算查找范围的中点位置(例如使用变量m记录这个中点位 置)。把查找范围(I,j)的中点位置上的数据d(m)与查找键key进 行比较,结果必然是如下三种情况之一:
(1)key<d(m),查找键小于中点d(m)处的数据。由数组d中数据的递增性可 以确定上:在(m,j)内不可能存在值为key的数据,必须在新的范围(I,m-1)中 继续查找。 (2)key=d(m),找到了需要的数据。 (3)key>d(m)与(1)相同的理由,必须在新的范围(m+1,j)中继续查找。 这样除了出现情况(2)在通过一次比较后新的查找范围不超过上一次查找范围的一半。
程序界面(可以在排序程序的基础上做)
command1
command2
text2
text3 text4
怎样自动生成数据呢? 怎样自动生成数据呢?
利用随机函数rnd():产生 产生[0,1)之间的随机数 利用随机函数 产生 之间的随机数 For I=1 to n randomize d(i)=fix(1000*rnd) Next i
需要
log2n
m = (i + j) \ 2或m=fix((I+j)/2)
i=m+1 j=m-1
End If Loop If pos = 0 Then Text3.Text = "找不到" + Str(Key) End If
顺序查找与对分查找比较
是否需要 事先排序 顺序查找 不需要 平均查找次数
(n+1)/2
对分查找
顺序查找分析
若一个数组有n个元素 找到第1个元素,查找1次 找到第2个元素,查找2次 …… 找到第n个元素,查找n次 平均查找次数(1+2+……+n)/n (n+1)/2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

教案二
一、课题:对分查找
二、教学目标:了解对分查找在生活中的例子,理解对分查找的基
本思想和特点。

能够对所给实例用对分查找进行解答同时能够理解对分查找的流程图。

认识到对分查找在现实生活中的意义。

三、教学重点:理解对分查找的基本思想与概念并合理的运用对分
查找解决问题。

四、教学难点:对对分查找流程图的理解与认识。

部分代码的理解。

五、教学类型:新授课时
六、教学流程:(1)导入新课:通过生活中趣闻的问题来引导学生
进行对分查找概念的理解与学习。

讨论:XX商品的价格在XX到XX之间让学生猜他的价格,学生没报一个数字就告诉他比实际数字大还是小。

(通过学生各种不同的方法引出对分查找法同时体现对分查找法的优势)。

(2)进行新课:对分查找法的概念与前提(必须是有序的)。

(3)课间学生上机操作体验对分查找法,同时布置任务用对分查找法解决问题。

学生小组讨论
(4)教师提问解决学生和总结任务过程中表现出来的问题并解决。

(5)注意事项:对分查找中心点的计算M=(i+j)/2(i 和j代表范围【I j】),新的查找范围[m+1 , j]或[I ,m-1]查找结束
的条件找到数据或者i>j。

(6)对分查找的的优势与意义。

七、教具:计算机,黑板
八、教学反思:………………………..。

相关文档
最新文档