跟我一起学 - 算法导论 - 分治算法

简介:
算法导论,一章二小节 ,分治算法
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  Debugging(A,p,q,r,c):
    
print   " %s\t%s:%s - %s:%s "   %  (c,p,q,q + 1 ,r)

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 )
        
# Debugging(A,p,q,r,c)
        MERGE(A,p,q,r)

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

结果输出》》
python 2f.py
[5, 2, 7, 4, 1, 3, 2, 6]
[1, 2, 2, 3, 4, 5, 6, 7]
分享些细节:算法并不难,但确实写了很久,调试让我很郁闷。
直到写了 def  Debugging   目测:
python 2f.py
3        0:0  -   1 : 1
3         2 : 2   -   3 : 3
2        0: 1   -   2 : 3
3         4 : 4   -   5 : 5
3         6 : 6   -   7 : 7
2         4 : 5   -   6 : 7
1        0: 3   -   4 : 7
看 每层 对数组的 数组下标取值 : 
在 python 中当 
arr = [1,2,3,4] 我希望能取出 [2,3] 是 arr[1:3] 是最后一位不计算在内的

最典型的  arr[0,1]  == [1]

本文转自博客园刘凯毅的博客,原文链接:跟我一起学 - 算法导论 - 分治算法,如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
人工智能 自然语言处理 算法
当prompt策略遇上分治算法,南加大、微软让大模型炼成“火眼金睛”
【2月更文挑战第24天】当prompt策略遇上分治算法,南加大、微软让大模型炼成“火眼金睛”
24 2
当prompt策略遇上分治算法,南加大、微软让大模型炼成“火眼金睛”
|
4月前
|
算法
2017级《算法设计与分析》--实验1--分治算法-骨牌铺方格
2017级《算法设计与分析》--实验1--分治算法-骨牌铺方格
|
4月前
|
算法
2017级《算法设计与分析》--实验1--分治算法
2017级《算法设计与分析》--实验1--分治算法
|
2月前
|
算法
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-分治算法
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-分治算法
17 0
|
5月前
|
算法 JavaScript
分治算法
分治算法
50 0
|
3月前
|
存储 算法 搜索推荐
【算法系列篇】分治-归并
【算法系列篇】分治-归并
|
3月前
|
算法 搜索推荐 Java
【算法系列篇】分治-快排
【算法系列篇】分治-快排
|
3月前
|
算法 搜索推荐
归并算法:分治而治的高效算法大揭秘(图文详解)
归并算法:分治而治的高效算法大揭秘(图文详解)
41 0
|
3月前
|
算法 NoSQL 容器
|
4月前
|
存储 算法 搜索推荐
动态规划、回溯搜索、分治算法、分支定界算法
动态规划、回溯搜索、分治算法、分支定界算法