算法导论 第三版 思考题 7-4
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法导论 第三版 思考题 7-4相关的知识,希望对你有一定的参考价值。
快速排序,尾递归。最坏情况下栈深度Θ(lgn)
1 import random 2 def patition(A, l, r): 3 j = l 4 key = A[r] 5 for i in range(l, r+1): 6 if A[i] < key: 7 temp = A[j] 8 A[j] = A[i] 9 A[i] = temp 10 j += 1 11 A[r] = A[j] 12 A[j] = key 13 return j 14 15 def quicksort(A, l, r): 16 if l < r: 17 p = patition(A, l, r) 18 recusive_tail_quicksort(A, l, p-1) 19 recusive_tail_quicksort(A, p+1, r) 20 21 def recusive_tail_quicksort(A, l, r): 22 while l < r: 23 p = patition(A, l, r) 24 if (p-l) <= (r-p): 25 recusive_tail_quicksort(A, l, p-1) 26 l = p + 1 27 else: 28 recusive_tail_quicksort(A, p+1, r) 29 r = p-1 30 31 list1 = [i for i in range(100)] 32 random.shuffle(list1) 33 print(list1) 34 recusive_tail_quicksort(list1, 0, len(list1)-1) 35 print(list1)
以上是关于算法导论 第三版 思考题 7-4的主要内容,如果未能解决你的问题,请参考以下文章