美文网首页
python-算法-4.快速排序/

python-算法-4.快速排序/

作者: 时间之友 | 来源:发表于2019-12-01 14:37 被阅读0次

    前一章深入介绍了递归,本章的重点是使用学到的新技能来解决问题。我们将探索分而治之(divide and conquer,D&C)—— 一种著名的递归式问题解决方法。


    4.1 分而治之

    用递归求一个 列表所有元素的和

    def sum(list):     # 重点是找到基线条件 递归条件
        if list == [ ]:
            return 0
        return list[0] + sum(list[1:])
    

    快速排序法,其中用到二分查找的方法:

    def quicksort(array): 
        if len(array) < 2:
            return array 
        else:
    # 基线条件:为空或只包含一个元素的数组是“有序”的
            pivot = array[0]         # 递归条件
            less = [i for i in array[1:] if i <= pivot]
            greater = [i for i in array[1:] if i > pivot]
            # 由所有小于基准值的元素组成的子数组,
            # 由所有大于基准值的 元素组成的子数组
            return quicksort(less) + [pivot] + quicksort(greater) 
    print quicksort([10, 5, 2, 3])
    

    相关文章

      网友评论

          本文标题:python-算法-4.快速排序/

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