美文网首页
python实现快速排序

python实现快速排序

作者: 微凉_半夏 | 来源:发表于2019-01-16 12:02 被阅读0次
    快排,注释在代码中,直接上代码
    # 快速排序
    # -*- coding: utf-8 -*-
    
    def quicksort(list1):
        max1 = []
        inter = []
        min1 = []
    
        if len(list1) <= 1:  # 判断初始列表长度是否符合快排条件
            return list1
        else:
            values = list1[0]  # 设置用于比较大小的值,建议采用列表0的位置,因为可能后面分割后其他位置不一定有
            for i in list1:
                if i < values:  # 比较大小,分别放入两个列表中
                    min1.append(i)
                elif i > values:
                    max1.append(i)
                else:
                    inter.append(i)
    
        max2 = quicksort(max1)  # 递归,直到排完
        min2 = quicksort(min1)
    
        return min2 + inter + max2  # 注意这里的返回,一定是递归后的,而不是刚开始的
    
    
    if __name__ == '__main__':
        list1 = [23, 45, 6, 78, 13, 58, 689, 43, 6, 4, 6, 0, 3, 16, 4, 8, 6, 4, 45, 45]
        print(quicksort(list1))
    
    

    相关文章

      网友评论

          本文标题:python实现快速排序

          本文链接:https://www.haomeiwen.com/subject/hxtmdqtx.html