算法导论 第三版 思考题 7-4
2017-07-03 11:23
477 查看
快速排序,尾递归。最坏情况下栈深度Θ(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)
相关文章推荐
- 算法导论第三版-思考题2-1
- 算法导论(第三版) 第三章思考题
- 算法导论第三版-思考题2-1
- 算法导论第三版第四章思考题
- 算法导论第三版-思考题2-1
- 算法导论第三版 第三章 思考题 3-6
- 算法导论第三版思考题8-4
- 算法导论第三版-思考题2-1
- 算法导论第三版-思考题2-1
- 算法导论(第三版)-复习- 第六部分图论思考题 22 基本的图算法
- 算法导论第三版第二章思考题答案
- 算法导论第三版4.1最大和子数组思考
- 算法导论第三版思考题8-2.e
- 算法导论第三版思考题8-3.a
- 算法导论第三版-思考题2-1
- 算法导论第三版思考题8-3.b
- 算法导论(第三版) 第二章思考题
- 算法导论第三版-思考题2-1
- 算法导论第三版 课后题,思考题,以及本人的一点思考,将会在此博客持续更新
- 算法导论第三版-思考题2-1