三路快排 duplicate keys

来源:互联网 发布:程序员应届生个人简历 编辑:程序博客网 时间:2024/06/02 08:56
def exch(l,i,j):    temp = l[i]    l[i] = l[j]    l[j] = tempdef sort(l):    quick(l,0,len(l) - 1)def quick(l,lo,hi):    if lo >= hi: return    v = l[0]    i = lo    gt = hi    lt = lo    while i <= gt:        cmp = l[i] - v        if cmp == 0 : i+=1        if cmp < 0 :            exch(l,i,lt)            i += 1            lt +=1        if cmp > 0 :            exch(l,i,gt)            gt -= 1    quick(l,lo,lt -1)    quick(l,gt + 1,hi)    l = [9,9,8,8,7,6,7,5,4,3,2,5,2,1,4,5,7,8,3,4,6]    sort(l)    print l