《C语言程序设计》-任正云解析.ppt

数组的应用举例  7.4.1 二分查找 对于如下已排序的数据序列(数组a),要求查找给定值k=2。 0 1 2 4 5 7 8 9 查找过程如下: ① 用left,right作为查找范围的上下界,用mid表示每次比较的数据对象 的位置,它在由left和right标记的查找范围的中间,可用下面语句实现。 mid=(left+right)/2 ② 最初left=0,right=7,则mid=3,若用“[”和“]”代表查找范围,着重号 指明要比较的数,即mid所在位置,则有下列表示。 [0 1 2 4 5 7 8 9] ③ 此时a[mid]=4,ka[mid],应在前半段中查找。重新设定查找范围, left=0,right=mid-1=2,则mid=1,并有下列表示。 [0 1 2] 4 5 7 8 9 ④ 此时a[mid]=1,ka[mid],应在后半段中查找。重新设定查找范围, 此时left=mid+1=2,right=2, 则mid=2,并有下列表示。 0 1 [2] 4 5 7 8 9 ⑤ 此时k=a[mid]=2,则查找成功。 若k=3,根据以上过程查找时,会出现上界数值(left)和下界数值 (right)颠倒的情况,表示查找不成功。 数组的应用举例  例 要求用户输入一个数,输出有关查找信息。 # inc

文档评论(0)

1亿VIP精品文档

相关文档