查找-之顺序表查找-(数据的排列无序)

查找--摘要

查找-之顺序表查找-(数据的排列无序)_第1张图片

 静态查找表:只做查找操作的查找表

动态查找表:在查找过程中还做插入和删除数据元素的操作

查找时可改变数据元素之间的关系以获得较高的查找性能,将查找集合组织成表、树结构。也即是从数据的存储方式作出改进。

还有从算法层面做出改进:二分、插值、斐波那契查找等

 

顺序查找:线性查找,从表的第一个逐个开始和待查找元素比较,直到最后一个(暴力破解)

//C
//a为待查数组,n为待查数组长度,key为待查找值  
int Sequential_Search(int *a,int n, int key)
{
   int i;
   for(i=1;i<=n,i++)
   {
      if(a[i]==key)
         return i;
   }

  return 0;
}

顺序查找的优化

不需要每次让i和n比较 ,在数据较多时效率提升

//C
int Sequential_Search2(int *a,int n, int key)
{
 int i;
 a[0]=key;
 i=n;
 while(a[i]!=key)
 {
   i--;
 }
  return i;
}

时间复杂度:O(n)

空间复杂度:O(1)

 

你可能感兴趣的:(数据结构,#,查找,查找,顺序表查找)