顺序表的查找技术
假设有一组书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 }
这样就减少了一半的查找时间。