定义
顺序查找又称为线性查找,其算法思路是从数组中的第一个(或最后一个)记录开始,将数组中元素逐个与需要查找的关键字进行比对,若发现有相等的,则查找成功;若始终未能相等,则查找失败。
Java实现
1 | // 定义接口 |
LinearSearcher是标准的线性查找,这里有缺陷:在循环中每个循环实际上需要判断两次(一次是否相等,一次是否越界),如何改进呢?其实就是设置“哨兵”:
1 | /** |
不论是线性查找还是改进后的线性查找,其时间复杂度都为O(n)
顺序查找又称为线性查找,其算法思路是从数组中的第一个(或最后一个)记录开始,将数组中元素逐个与需要查找的关键字进行比对,若发现有相等的,则查找成功;若始终未能相等,则查找失败。
1 | // 定义接口 |
LinearSearcher是标准的线性查找,这里有缺陷:在循环中每个循环实际上需要判断两次(一次是否相等,一次是否越界),如何改进呢?其实就是设置“哨兵”:
1 | /** |
不论是线性查找还是改进后的线性查找,其时间复杂度都为O(n)