RCmerci

边看CLRS边写

从这学期中开始看CLRS,总得写点什么,这一篇把书中的一些算法用python实现一下,加深一点印象。

持续写下去,应该会有好长一篇吧。

先是普通版快排

 1 # -*- coding: utf-8 -*-
 2 
 3 ####quick-sort#####
 4 
 5 def PARTITION(A,b,e):
 6     i=j=b
 7     while j<e:
 8         if A[j]<A[e]:
 9             temp = A[j]
10             A[j] = A[i]
11             A[i] = temp
12             i+=1
13         j+=1
14     temp = A[e]
15     A[e] = A[i]
16     A[i] = temp
17     return i
18 def QUICK_SORT(A,b,e):
19     if b<e:
20         q = PARTITION(A,b,e)
21         QUICK_SORT(A,b,q-1)
22         QUICK_SORT(A,q+1,e)
23     pass
24 if __name__ == '__main__':
25     A=[2,3,21,432,54,1,23,453,45,1,22,2,563,787,-90,45,3,78,7483,32,12,3,2,222,-123]
26     QUICK_SORT(A,0,A.__len__()-1)
27     print A

然后 是插入排序 

 1 ####insert-sort###
 2 def swap(A,a,b):
 3     temp = A[b]
 4     A[b] = A[a]
 5     A[a] = temp
 6 
 7 def INSERT_SORT(A,b,e):
 8     i = b
 9     while i<=e:
10         key = A[i]
11         j=i-1
12         i+=1
13         while j>=b and key<A[j]:
14             swap(A,j+1,j)
15             j-=1
16 
17 if __name__ == '__main__':
18     A=[2,3,21,432,54,1,23,453,45,1,22,2,563,787,-90,45,3,78,7483,32,12,3,2,222,-123]
19     INSERT_SORT(A,0,A.__len__()-1)
20     print A

 

posted on 2013-12-09 23:38  RCmerci  阅读(169)  评论(0)    收藏  举报

导航