第四章 二分查找(数组)

习题

1.给定的l 和 h 的范围包括-1 和 n两个哨兵节点的范围, n为0时, l和h 的最小值分别为-1, 和 0

 l 是 [0, n], h 是 [-1, n)   使得 l + h 的范围在[-1, 2n - 1]之间

同时,表明我们不会访问数组哨兵元素,因为哨兵是 l-1, 和 u+ 1; l-1 最小是 -1, u+1 最大是 n, 都不在数组的l 和 h 的范围之内

哨兵的使用

int Sequential_Search2(int *a int n,int key)  
{  
    int i=0;  
    a[0]=key;//哨兵  
    i=n;  
    while(a[i]!=key)  
    {  
        i--;  
    }  
    return i;//返回0就是查找失败  
}  
i=0;
while(i<n)
{
  max=x[i];
  x[n]=max;
  i++;
 while(x[i]<max)
  i++;
}
求n个数中的最大值
</pre><pre code_snippet_id="1658718" snippet_file_name="blog_20160423_2_7559897" name="code" class="cpp">int Sequential_Search2(int *a int n,int key)  
{  
    int i=0;  
    a[0]=key;//哨兵  
    i=n;  
    while(a[i]!=key)  
    {  
        i--;  
    }  
    return i;//返回0就是查找失败  
}  
                                                                                                                                                          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值