顺序表的查找技术
假设有一组书8,5,9,80,16,5,56。。。。如何查找我们的value?
一般为
for(int i=0;i<size;i++)
{
if(arry[i]==value)
{
return i;
}
}
return false;
看第一个for循环中每次都需要判断一次i<size,那我们遍历100个数最坏情况下其实是比较了200次。
于是我们设定一个哨兵在a[0],然后while循环从后往前比较,加入比较到就返回i,否则返回0。
1 int search(vector<int>& v,int value)
2 {
3 v[0]=value;
4 int i=v.size();
5 while(i!=value)
6 {
7 i--;
8 }
9 return i;
10 }
这样就减少了一半的查找时间。