Merge_sort

"""
Created on Thu Oct 09 17:32:31 2014

@author: Zharma

Describe: input:A 要排序的序列
                p 要排序的起始元素下標
                r 要排序的最后一個元素的下標
          排序內容可以為A的全部序列或者部分序列

"""

def merge(A, p, q, r):
    L = A[p: q + 1]
    R = A[q + 1: r + 1]
    print R
    L.append('None')
    R.append('None')
    i = 0
    j = 0
    for e in range(p, r + 1):
        if L[i] <= R[j]:
            A[e] = L[i]
            i += 1
    else:
        A[e] = R[j]
        j += 1


def merge_sort(A, p, r):
    if p < r:
        q = (p + r)/2
        merge_sort(A, p, q)
        merge_sort(A, q + 1, r)
        merge(A, p, q, r)

偶爾有時間,來一發算法,自娛自樂

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 聲明:算法和數據結構的文章均是作者從github上翻譯過來,為方便大家閱讀。如果英語閱讀能力強的朋友,可以直接到s...
    UnsanYL閱讀 1,596評論 0 2
  • 歸并排序在對數組排序的過程中,現遞歸的分為兩半排序,再將結果歸并起來。實現歸并的一種直截了當的方式是將兩個不同的有...
    sleepyjoker閱讀 435評論 0 0
  • 說起歸并排序(Merge Sort),其在排序界的地位可不低,畢竟O(nlogn)比較排序的三大排序方法,就是Qu...
    akak18183閱讀 787評論 0 1
  • 合并排序是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法的一個非常典型的應用。合并排序法是將兩個(或兩個...
    noonbiteun閱讀 991評論 0 1
  • 歸并排序是建立在歸并操作上的一種有效的排序算法,該算法是采用分治法(Divide and Conquer)的一個非...
    NEXTFIND閱讀 1,009評論 0 0