Skynet  
日历
<2009年11月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345
统计
  • 随笔 - 112
  • 文章 - 1
  • 评论 - 40
  • 引用 - 0

导航

常用链接

留言簿(11)

随笔分类

随笔档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

看第二节  - 递归树方法 :
突发奇想 能否 使用 txt 构造出 递归过程 
还是有 上此提到的 递归方法 分治排序



 

# encoding: utf-8  
arr=[]
def printTree():
    ac 
= []
    ii 
= 0 
    
for r in arr :
        c,ss,cc 
= r 
        sc 
= [' ' for i in xrange(cc*(c-1))]
        
for i in xrange(len(sc)) :
            
if i % cc == 0 : sc[i]="" 
        
#print "ci %s ii %s = %s "%(ci,ii,ii < ci)
        if ii>=c  : 
            sc 
= "".join(sc)+"├─"+ss+'  '
        
else :
            sc 
= "".join(sc)+"└─"+ss
        ii 
= c
        ac.append( sc )
        
    
for r in ac[::-1] :
        
print r
    

def MERGE(A,p,q,r):
    
#print "%s:%s - %s:%s" % (p,q+1,q+1,r+1)
    if p==q : L = [A[p],10**10]
    
else : L = A[p:q+1]+[10**10]

    
if q+1==r : R = [A[r],10**10]
    
else : R = A[q+1:r+1]+[10*10]

    i 
= j = 0
    
for k in xrange(p,r+1):
        
if L[i]<R[j] :
            A[k]
=L[i]
            i
+=1
        
else:
            A[k]
=R[j]
            j
+=1
    
# print "%s:%s = %s \n%s:%s = %s\n\n%s" % ( p,q, L , q+1,r,R, A)


def MERGE_SORT(A,p,r,c=1):
    
if p<r:
        q 
= (p+r)/2
        MERGE_SORT(A,p,q,c
+1)
        MERGE_SORT(A,q
+1,r,c+1)
        arr.append( (c,
"%s - %s" % ( A[p:q+1],A[q+1:r+1]) , 3 ) )
        
# Debugging(A,p,q,r, sc )
        MERGE(A,p,q,r)

A
=[5,2,7,4,1,3,2,6]
MERGE_SORT(A,0,len(A)
-1)
print A
printTree() 




输出 (重下往上看  输出 排序过程 ,我就不多说了 应该很好理解了!!):
[1, 2, 2, 3, 4, 5, 6, 7]
├─[2, 4, 5, 7] - [1, 2, 3, 6]
│  ├─[1, 3] - [2, 6]
│  │  ├─[2] - [6]
│  │  └─[1] - [3]
│  ├─[2, 5] - [4, 7]
│  │  ├─[7] - [4]
│  │  └─[5] - [2]






整理 www.blogjava.net/Good-Game
posted on 2009-11-25 23:09 刘凯毅 阅读(996) 评论(0)  编辑  收藏 所属分类: python算法/函数

专题:iPad  jQuery  Chrome OS

博客园首页  IT新闻  闪存  学英语
标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录      
该文被作者在 2009-11-25 23:11 编辑过
每天10分钟,轻松学英语


网站导航:
 
 
Copyright © 刘凯毅 Powered by: 博客园 模板提供:沪江博客