程序设计算法折半查找
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Input to x
一个数组 a有10 个元素,已经按升 序排列好 。输入 一个数,判断该数 是否在数组中,不 在返回“no”, 存在返回“yes” 和该数在数组中的 位置
L=1 R=10 Zj=int((L+R)/2) if x=a(zj) ?'yes',zj exit
input to x
1 2 4 5
R
input to x L=1
一个数组 a有10 个元素,已经按升 序排列好 。输入 一个数,判断该数 是否在数组中,不 在返回“no”, 存在返回“yes” 和该数在数组中的 位置
R=10 L<=R do while ________ Zj=int((L+R)/2) if x=a(zj) ?'yes',zj exit else if x<a(zj) R=zj-1 else L=zj+1 endif endif enddo
R
input to x
1 2 4 5 6
L=1
9
10
L
一个数组 a有10 个元素,已经按升 序排列好 。输入 一个数,判断该数 是否在数组中,不 在返回“no”, 存在返回“yes” 和该数在数组中的 位置
R=10 Zj=int((L+R)/2) if x=a(zj) ?'yes',zj exit else if x<a(zj) R=zj-1 else L=zj+1 endif endif
Input to x
一个数组 a有10 个元素,已经按升 序排列好 。输入 一个数,判断该数 是否在数组中,不 在返回“no”, 存在返回“yes” 和该数在数组中的 位置
Input to x
1
一个数组 a有10 个元素,已经按升 序排列好 。输入 一个数,判断该数 是否在数组中,不 在返回“no”, 2 存在返回“ yes” 和该数在数组中的 位置
总结
VF程序设计基础
折半查找
制作人:石家庄市第十一中学 赵琳娜
0
500
999
折 半 查 找
先给出一个商品 然后你给出价格 然后主持人会根据你所出的价格 来判断是高于实际价格还是低于 实际价格 并提示是"高了"还是"低了" 直到你猜对价格 每件商品的价格都在0-999元之间 时间限制 当然是有时间限制的哈
L=1
9
10
L
一个数组 a有10 个元素,已经按升 序排列好 。输入 一个数,判断该数 是否在数组中,不 在返回“no”, 存在返回“yes” 和该数在数组中的 位置
R=10 Zj=int((L+R)/2) if x=a(zj) ?'yes',zj exit else if x<a(zj) R=zj-1
一个数组 a有10 个元素,已经 按升序排列好 。输入一个数, 判断该数是否在数组中,不在 返回“no”,存在返回“yes” 和该数在数组中的位置
一个数组 a有10 个元素,已经按升 序排列好 。输入 一个数,判断该数 是否在数组中,不 在返回“no”, 存在返回“yes” 和该数在数组中的 位置
折半查找 算 法
Байду номын сангаас
input to x L=1 R=10 do while L<=R Zj=int((L+R)/2) if x=a(zj) ?'yes',zj exit else if x<a(zj) R=zj-1 else L=zj+1 endif endif enddo if L>R ?'NO' endif
L=1 R=10 Zj=int((L+R)/2)
5
9
10
L
R
Input to x
一个数组 a有10 个元素,已经按升 序排列好 。输入 一个数,判断该数 是否在数组中,不 在返回“no”, 存在返回“yes” 和该数在数组中的 位置
L=1 R=10 Zj=int((L+R)/2) if x=a(zj)
input to x L=1
一个数组 a有10 个元素,已经按升 序排列好 。输入 一个数,判断该数 是否在数组中,不 在返回“no”, 存在返回“yes” 和该数在数组中的 位置
R=10 do while L<=R Zj=int((L+R)/2) if x=a(zj) ?'yes',zj exit else if x<a(zj) R=zj-1 else L=zj+1 endif endif enddo if L>R ?'NO' endif