习题
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就是查找失败
}