Python 實現二分查找

""" 二分查找,在有序列表基礎上 bisect 模塊 """ # 普通方式 def binary_search(sorted_array, val): if not sorted_array: return -1 beg = 0 end = len(sorted_array) - 1 while beg <= end: mid = int((beg + end)/2) if sorted_array[mid] == val: return mid elif sorted_array[mid] > val: end = mid - 1 else: beg = mid + 1 return -1 # 遞歸實現二分 def binary_search_recursive(sorted_array, beg, end, val): if beg >= end: return -1 mid = int((beg + end) / 2) if sorted_array[mid] == val: return mid elif sorted_array[mid] > val: return binary_search_recursive(sorted_array, beg, mid, val) else: return binary_search_recursive(sorted_array, mid+1, end, val) print(binary_search_recursive([2,3,4], 0, 3, 4))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章