查找算法
常见查找算法有七种,分别为顺序查找,二分查找,插值查找,斐波那契查找,树表查找,分块查找,哈希查找。
一般使用的是顺序查找和二分查找
顺序查找代码:
class Sequential_Search(object): def __init__(self, arr): self.arr = arr def search(self, val): for i in range(len(self.arr)): if self.arr[i] == val: return True return False if __name__ == '__main__': # 顺序查找 a = [1, 6, 3, 8, 5, 9, 2, 7, 4] S = Sequential_Search(a) # 利用a数组初始化一个顺序查找对象 print(S.search(2))
二分查找需要数组为有序数组,代码如下:
class Binary_Search(object): def __init__(self, arr): self.arr = arr def search(self, val): low = 0 high = len(self.arr)-1 while low <= high: mid = (low + high)//2 if self.arr[mid] == val: return True elif self.arr[mid] < val: low = mid + 1 else: high = mid - 1 return False if __name__ == '__main__': # 二分查找 b = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = Binary_Search(b) # 利用b数组初始化一个顺序查找对象 print(B.search(1))
浙公网安备 33010602011771号