本身是一个很简单的问题,但是,这里有一个优化技巧:

普通线性搜索如下:

1 linearSearch()
2     for i从1到n-1
3         if A[i]与key相等
4             return i
5     return NOT_FOUND

加入标记后优化的线性搜索如下:

1 linearSearch()
2     i = 0
3     A[n] = key
4     while A[i] 与 key 不同
5         i++
6     if i 到达了 n
7         return NOT_FOUND
8     return i

优化之前的代码,每次有两个比较,一个是循环结束条件比较,另一个是关键字比较

优化之后,只有一个不等运算,因为添加的标记能确保循环能跳出,所以省去了循环结束条件判定

这个优化再处理大规模数据时会有比较明显的效果

posted on 2020-09-10 15:47  高数考了59  阅读(100)  评论(0)    收藏  举报