Python中的查算法
Python中的查算法
查算法在计算机科学中具有重要的地位,在各个领域中都有着广泛的应用。Python作为一种高级编程语言,也提供了多种查算法。本文将对Python中的查算法进行介绍。
1.线性查
线性查也称为顺序查。顺序查从数据的第一个元素开始查,直到到目标元素或查完所有元素。时间复杂度为O(n)。
代码实现:
```python
def linear_search(arr, x):
for i in range(len(arr)):
if arr[i] == x:
return i
return -1
```
2.二分查
二分查又称为折半查。在有序数组中查目标元素,将数组分为两部分,如果目标元素等于中间元素,则查成功,如果小于中间元素,则在左半边继续查,如果大于中间元素,则在右半边继续查。时间复杂度为O(log n)。
python 定义数组代码实现:
```python
def binary_search(arr, x):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] < x:
low = mid + 1
elif arr[mid] > x:
high = mid - 1
else:
return mid
return -1
```
3.插值查
插值查是二分查的变种,主要是通过插值公式来确定查位置。插值公式为:
mid = low + (high - low) * (x - arr[low]) // (arr[high] - arr[low])
时间复杂度为O(log n)。
代码实现:
```python
def interpolation_search(arr, x):
low = 0
high = len(arr) - 1
while low <= high and x >= arr[low] and x <= arr[high]:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论