静态查找表:只进行查找操作的查找表
动态查找表:在查找过程中同时插入查找表中不存在的元素,或者删除已存在的元素
本文主要总结静态查找表
1.顺序表查找:从第一个或者最后一个记录开始,将每个记录的关键字与给定值比较,若相等则查找成功。
C++实现:
for(int i=0;i<n;i++)
{
if(a[i]==key)
return i;
}
return 0;
时间复杂度:
最好情况:O(1),第一次就找到
最坏情况:O(n),需要逐个比较完
平均:O(n)
2.有序表查找:元素是有序排列的,且是顺序存储的(存在数组或者vector)。主要包括二分查找,插值查找,斐波拉契查找
2.1二分查找(折半查找)