首页 > 其他 > 详细

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

时间:2018-05-23 14:07:34      阅读:175      评论:0      收藏:0      [点我收藏+]

                顺序表的查找技术

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

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

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!