算法导论 第三版 思考题 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的主要内容,如果未能解决你的问题,请参考以下文章

算法导论第三版思考题8-2.e

算法导论第三版答案(2-25章)

算法导论 第三版 9.3-8

算法导论第三版10.2-4练习 - 修改链表查询方法

算法导论 红黑树 学习 旋转

算法导论 红黑树 学习 删除