本身是一个很简单的问题,但是,这里有一个优化技巧:
普通线性搜索如下:
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
优化之前的代码,每次有两个比较,一个是循环结束条件比较,另一个是关键字比较
优化之后,只有一个不等运算,因为添加的标记能确保循环能跳出,所以省去了循环结束条件判定
这个优化再处理大规模数据时会有比较明显的效果
浙公网安备 33010602011771号