搜索算法 在计算机科学中搜索算法是解决搜索问题的任何算法即检索存储在某个数据结构中的信息或者在问题的可行域中计算的信息这种结构的例子包括但不限于链表数组或搜索树合适的搜索算法通常取决于正在搜索的数据结构并且还可能包括有关数据的先前知识搜索还包含查询数据结构的算法例如SQL SELECT命令 搜索算法可以根据搜索机制进行分类线性搜索算法以线性方式检查每个与目标关键字关联的记录二分或折半搜索二分查找算法重复定位搜索结构的中心并将搜索空间分成两半比较搜索算法通过基于键的比较相继地消除记录来改进线性搜索直到找到目标记录为止并且可以按照定义的顺序应用于数据结构数字搜索算法基于使用数字键的数据结构中的数字属性工作最后哈希根据散列函数直接将键映射到记录在线性搜索之外进行搜索需要以某种方式对数据进行排序此外使用了启发式信息的方法称为启发式搜索 搜索功能常根据其复杂性或最大理论运行时间进行评估例如二分查找算法的最大复杂度为 O  log  n  displaystyle Olog n 即对数时间复杂度这意味着查找搜索目标所需的最大操作次数是搜索空间大小的对数函数其它评估方式包括完备性空间复杂性最优性