排序算法--归并排序(python实现)

  • 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))
            

显示结果如下:

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对于除法时候可能转换为了浮点数,要将里面的“/”改为“//”就可以运行了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 南宫成这人,如果你不了解他的经历与背后的故事,你一定会认为他这人狂妄自大,无法无天,天生贱骨,节操全无,纯属没事找...
    小二不2阅读 7,280评论 0 1
  • 为了帮XX写论文,只好开始自学统计学的相关知识,遂从网上买了数理统计与数据分析和深入浅出统计学来钻研,顺带还附赠了...
    宝石老头阅读 3,395评论 0 0

友情链接更多精彩内容