前面从软件、程序讲到算法,概括讲述了算法的两大要素:控制流程和数据结构。其中还穿插了冯诺依曼结构以及数组和链表在存储层的实现。
终于,我们迎来了第一个算法——顺序查找!
查找算法(Search Algorithm)
查找算法,又名搜索算法,它的定义就是字面意思:解决查找问题的算法。
这个定义还可以换两种说法:i)检索存储在某种数据结构中的信息的算法;或者 ii)在问题域的搜索空间进行计算的算法。
ii)的说法有点绕,大家可以暂时忽略。
找东西
我们可以暂且简单地把查找算法理解成“从一堆东西里找出某个特定的东西”的算法——简称“找东西算法”。
人们找东西,无外乎下面几个目的:
1. 找到“这个东西”
2. 确定是否真的存在“这个东西”
3. 发现“这个东西”目前所在的位置
举个例子:
我们对一个图书馆员说:“请帮我找一下《算法导论》这本书。” —— 我们告知了图书馆员某一本书的一个属性:书名,然后要求TA把对应的实体找出来【目的1】。
图书馆员拿着这个书名到书库里去找,找了一圈下来&#x