1. 简介
查找算是工作过程中运用最广泛的操作了,操作系统读取文件时需要查找,从数据库读取数据时需要查找…
本文将对常见的查找算法进行总结。
2. 常见算法
2.1 顺序查找
基本思想:
该算法简单粗暴,从头(或是最后)开始遍历,找到要查的数据就停止遍历并返回结果,如果遍历完也没有找到就是查找不成功。
时间复杂度:O(n)
2.2 有序表
2.2.1 二分查找
基本思想:
- 将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;
- 否则利用中间位置记录将表分成前、后两个子表,
- 如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,
- 否则进一步查找后一子表。
- 重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功
时间复杂度:O(log2n)
2.2.2 插值查找
对于数值变化幅度比较均匀的有序数组,要查的值在数组中的位置基本是可以确定的,例如[10,20,30,40,60,70,80,90,100,120,130,140]这个数组,30是在数组的前半部分,60应该是离30不远的位置,而130则是在数组的后半部分,120,140是在130附近。
二分查找法用在上面的数组中ÿ