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

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

查找--摘要

83865649208f48488ed9c47836c63cf9_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlZGEz,size_16,color_FFFFFF,t_70.png

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

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

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

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

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

//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)

目录
相关文章
|
2天前
|
算法 测试技术 C#
C++二分查找或并集查找:交换得到字典序最小的数组
C++二分查找或并集查找:交换得到字典序最小的数组
|
2天前
|
算法
leetcode-34:在排序数组中查找元素的第一个和最后一个位置
leetcode-34:在排序数组中查找元素的第一个和最后一个位置
18 0
|
7月前
|
算法
【算法专题突破】二分查找 - 在排序数组中查找元素的第一个和最后一个位置(17)
【算法专题突破】二分查找 - 在排序数组中查找元素的第一个和最后一个位置(17)
29 0
|
9月前
|
算法
LeetCode-34 在排序数组中查找元素的第一个和最后一个位置
LeetCode-34 在排序数组中查找元素的第一个和最后一个位置
|
9月前
|
存储 算法
数组算法:倒置,查找,插入,删除
数组算法:倒置,查找,插入,删除
69 0
|
10月前
|
算法 C语言 C++
【二分查找】34. 在排序数组中查找元素的第一个和最后一个位置
二分查找是一种高效的查找算法,其时间复杂度为 O(log n)。在许多情况下,我们需要在一个有序数组中找到某个目标值的搜索范围。本文将介绍一种基于二分查找的搜索范围查找算法,该算法能够快速找到目标值在数组中的起始和结束位置。
48 0
如何在一个有序数组中查找某一元素
如何在一个有序数组中查找某一元素
|
算法
力扣34题. 在排序数组中查找元素的第一个和最后一个位置
力扣34题. 在排序数组中查找元素的第一个和最后一个位置
67 0
|
算法
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
85 0
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置
|
算法 Java Python
【LeetCode】 34. 在排序数组中查找元素的第一个和最后一个位置
34. 在排序数组中查找元素的第一个和最后一个位置
77 0