簡體   English   中英

搜索反轉時打印

[英]Printing when Searching for Inversions

我正在嘗試實現一種搜索反演的算法。 我在打印更新的全局變量c遇到問題。 我應該把打印報表放在哪里?

我更喜歡使用涉及樣板(?)的方法,因為我將運行計時功能以稍后測試運行時間。 如果我只能得到它來打印結果(8)。 如果我將其放在合並函數中(在返回C之前),它將返回所有值,直到8。我希望它僅在過程結束時打印c。

c=0
def merge(A,B):

    global c
    C=[]
    lenA=len(A)
    lenB=len(B)
    i=0
    j=0
    while i<lenA and j<lenB:
        if A[i]<=B[j]:
            C.append(A[i])
            i=i+1
        else:
            c=c+len(A)-i 
            C.append(B[j])
            j=j+1
    if i==lenA:  #A get to the end
        C.extend(B[j:])
    else:
        C.extend(A[i:])
    return C


def inversions_divide_conquer(Array):
    N=len(Array)
    if N>1:
        S1=inversions_divide_conquer(Array[0:N/2])
        S2=inversions_divide_conquer(Array[N/2:])
        return merge(S1,S2)
    else:
        return Array



if __name__ == '__main__':

    inversions_divide_conquer([4, 1, 3, 2, 9, 1])
M = len(stuff)
def inversions_divide_conquer(Array):
    N=len(Array)
    if N>1:
        S1=inversions_divide_conquer(Array[0:N/2])
        S2=inversions_divide_conquer(Array[N/2:])
        if N == M:
            print c
        return merge(S1,S2)
    else:
        return Array

inversions_divide_conquer(stuff)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM