数组基础:快排算法 & 二分查找算法(python)
def binary_search(array, n):
left = 0
right = len(array) - 1
while left < right:
mid = (left + right)//2
if array[mid] > n:
right = mid
elif array[mid] < n:
left = mid + 1
else:
return array[mid]
return -1
def quick_sort(data):
if len(data) <= 1:
return data
left = quick_sort([i for i in data[1:] if i <= data[0]])
right = quick_sort([i for i in data[1:] if i > data[0]])
return left + [data[0]] + right
a = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10, 0]
a_sort = quick_sort(a)
print(a_sort)
print(binary_search(a_sort, 3))