码迷,mamicode.com
首页 > 编程语言 > 详细

算法导论 第三版 思考题 7-4

时间:2017-07-03 14:01:40      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:快速   shuf   return   情况   pat   color   pre   bsp   .sh   

快速排序,尾递归。最坏情况下栈深度Θ(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

标签:快速   shuf   return   情况   pat   color   pre   bsp   .sh   

原文地址:http://www.cnblogs.com/MrWrong/p/7110240.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!