【发布时间】:2022-01-02 03:37:41
【问题描述】:
我曾尝试自己在 python 中实现一个二进制搜索算法并且它有效,但是当我查看互联网时,他们中的大多数人都做了不同的事情。我不知道这两个哪个更好
我的二分搜索算法
def binary_search(arr, item):
minVal = 0
maxVal = len(arr) - 1
backtrack = 0
while (True):
midPosition = (maxVal - minVal)//2 + backtrack
mid = arr[midPosition]
if mid > item:
maxVal = midPosition
backtrack = midPosition
elif mid < item:
minVal = midPosition
backtrack = midPosition
else:
print(midPosition)
break
教程的二分查找算法
def binary_search(arr, x):
low = 0
high = len(arr) - 1
mid = 0
while low <= high:
mid = (high + low) // 2
# If x is greater, ignore left half
if arr[mid] < x:
low = mid + 1
# If x is smaller, ignore right half
elif arr[mid] > x:
high = mid - 1
# means x is present at mid
else:
return mid
# If we reach here, then the element was not present
return -1
【问题讨论】:
-
明确您所说的“更好”的含义可能有助于其他人回答您的问题。在性能方面更好?还是可读性?还是其他一些绩效衡量标准?
-
(您的
xyzVals 是索引,而不是值。然后是Style Guide for Python Code。) -
你是如何测试提供的代码的?
标签: python algorithm binary-search choice