排序算法--歸并排序(python實現(xiàn))

  • python 代碼如下
class sort:
    def mergesort(self,alist):
        if len(alist)<=1:
            return alist
        mid=len(alist)//2
        left=self.mergesort(alist[:mid])
        print("left= "+str(left))
        right=self.mergesort(alist[mid:])
        print("right= "+str(right))
        return self.mergeSortedArray(left,right)
    def mergeSortedArray(self,A,B):
        sortedArray=[]
        l=0
        r=0
        while l<len(A) and r<len(B):
            if A[l]<B[r]:
                sortedArray.append(A[l])
                l+=1
            else:
                sortedArray.append(B[r])
                r+=1
        sortedArray+=A[l:]
        sortedArray+=B[r:]
        return sortedArray
unsortedArray=[6, 5, 3, 1, 8, 7, 2, 4]
merge_sort=sort()
print(merge_sort.mergesort(unsortedArray))
            

顯示結(jié)果如下:

left= [6]
right= [5]
left= [5, 6]
left= [3]
right= [1]
right= [1, 3]
left= [1, 3, 5, 6]
left= [8]
right= [7]
left= [7, 8]
left= [2]
right= [4]
right= [2, 4]
right= [2, 4, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]

代碼寫完以后有個錯誤:

TypeError: slice indices must be integers or None or have an index method

解釋:

python對于除法時候可能轉(zhuǎn)換為了浮點數(shù),要將里面的“/”改為“//”就可以運行了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 南宮成這人,如果你不了解他的經(jīng)歷與背后的故事,你一定會認為他這人狂妄自大,無法無天,天生賤骨,節(jié)操全無,純屬沒事找...
    小二不2閱讀 2,645評論 0 1
  • 為了幫XX寫論文,只好開始自學(xué)統(tǒng)計學(xué)的相關(guān)知識,遂從網(wǎng)上買了數(shù)理統(tǒng)計與數(shù)據(jù)分析和深入淺出統(tǒng)計學(xué)來鉆研,順帶還附贈了...
    寶石老頭閱讀 576評論 0 0

友情鏈接更多精彩內(nèi)容