def sort(lst):
shortHelper(lst,0,len(lst)-1)
def shortHelper(lst,low,high):
if low < high:
indexOfMin = low
min = lst[low]
for i in range(low+1,high+1):
if lst[i] < min:
min = lst[i]
indexOfMin = i
lst[indexOfMin] = lst[low]
lst[low] = min
shortHelper(lst,low+1,high)
def recursiveBinarySearch(lst,key):
return recursiveBinarySearchHepler(lst,key,0,len(lst)-1)
def recursiveBinarySearchHepler(lst,key,low,high):
if low > high:
return -low - 1
mid = (low+high) // 2
if lst[mid] == key:
return mid
elif lst[mid] < key:
return recursiveBinarySearchHepler(lst,key,mid+1,high)
else:
return recursiveBinarySearchHepler(lst,key,low,mid-1)
if __name__ == '__main__':
lst = [3,4,5,1,2,6,2]
sort(lst)
print lst[recursiveBinarySearch(lst,1)]
Python 递归函数选择排序和二分查找
最新推荐文章于 2022-11-25 21:27:54 发布