码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构-查找-线性表查找技术

时间:2018-05-23 14:21:28      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:查找   假设   需要   arch   一半   i++   循环   比较   div   

                顺序表的查找技术

  假设有一组书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 }

  这样就减少了一半的查找时间。

数据结构-查找-线性表查找技术

标签:查找   假设   需要   arch   一半   i++   循环   比较   div   

原文地址:https://www.cnblogs.com/DJC-BLOG/p/9076496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!