快排 python实现

快排,面试题中出现概率最高的一道,甚至没有之一。python实现,直接上代码


def getMiddle(list1,low,high):
    tmp = list[low]
    while(low < high):
        while(low < high and list[high] > tmp):
            high -= 1
        list[low] = list[high]
       
        while(low < high and list[low] < tmp):
            low += 1
        list[high] = list[low]
   
    list[low] = tmp
   
    return low

def quickSort1(list,low,high):
    if low < high:
        middle = getMiddle(list, low, high)
        quickSort1(list, low, middle-1)
        quickSort1(list, middle+1, high)

if __name__ == '__main__':
    list = [7,4,3,1,9,8,6,5]
    getMiddle(list, 0, len(list)-1)
    print list
    quickSort1(list, 0, len(list)-1)
    print list


你可能感兴趣的:(python,快排)