查找算法总结备忘

来源:互联网 发布:netfits云墙 mac 编辑:程序博客网 时间:2024/05/17 09:31

## 查找算法

### 顺序查找/线性查找

+ 条件:有序+无序

+ 时间复杂度:O(n)

+ 空间复杂度:O(1)

+ 关键代码 `if (target == arry[i]) return i;`


### 二分查找/折半查找

+ 条件:有序

+ 时间复杂度:O(logN)

+ 空间复杂度:O(1)

+ 关键代码 `while (low_index <= high_index)` `low_index = mid_index + 1` `high_index = mid_index - 1`


### 插值查找

+ 条件:有序

+ 时间复杂度:O(logN)

+ 空间复杂度:O(1)

+ 关键代码:`mid_index = low_index + (high_index - low_index)*(targetValue - arry[low_index]) / (arry[high_index] - arry[low_index])`


### 哈希查找

+ 条件 :有序+无序,一个设计良好的哈希函数

+ 时间复杂度:O(1)

+ 空间复杂度:O(n)

+ 关键代码: `while (hash[hashAddress] != EMPTY_VALUE_IN_HASH && arry[hash[hashAddress]] != target) // nextHash()`

0 0
原创粉丝点击