算法导论中快速排序的三步分治实现

来源:互联网 发布:关于我的命运知乎 编辑:程序博客网 时间:2024/05/21 22:37

解析过程,以后再补充。

import randomdef partition(arr, l, r):    x = arr[r]    i = l - 1    j = l    while  j <= r - 1:        if arr[j] <= x:            i = i + 1            arr[i], arr[j] = arr[j], arr[i]        j = j + 1    arr[i + 1], arr[r] = arr[r], arr[i + 1]    return i + 1def quicksort(arr, l, r):    if l < r:        q = partition(arr, l, r)        quicksort(arr, l, q - 1)        quicksort(arr, q + 1, r)if __name__ == '__main__':    arrr = random.sample(range(1, 10000), 19)    print arrr    quicksort(arrr, 0,  len(arrr) - 1)    print arrr




0 0
原创粉丝点击