Python 递归函数选择排序和二分查找

来源:互联网 发布:军事网络的安全保护 编辑:程序博客网 时间:2024/05/16 15:10
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)]
0 0
原创粉丝点击