Skynet

          ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks
          算法導論,一章二小節 ,分治算法

          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]











          整理 www.aygfsteel.com/Good-Game
          posted on 2009-11-22 23:26 劉凱毅 閱讀(1412) 評論(0)  編輯  收藏 所屬分類: 算法/函數
          主站蜘蛛池模板: 于都县| 社会| 西平县| 固原市| 兰溪市| 平罗县| 唐海县| 兰州市| 玉树县| 垣曲县| 克东县| 林芝县| 德昌县| 琼海市| 洛川县| 堆龙德庆县| 阳朔县| 阜阳市| 长丰县| 漾濞| 通海县| 南康市| 新民市| 错那县| 招远市| 靖边县| 绍兴市| 荥经县| 大庆市| 沈丘县| 图木舒克市| 两当县| 全椒县| 镇坪县| 宽城| 丰县| 明水县| 农安县| 榆树市| 和顺县| 达拉特旗|