当前位置 > it书童 > 算法 > 正文
推荐小册
java高效编程
怎样更高效地用 java 编程

juc并发工具库
java并发编程工具库

设计模式
设计模式

jvm调优
jvm调优

rabbitmq实战
rabbitmq实战

redis实战
redis实战

Keepavlied高可用集群
Keepavlied高可用集群

nginx入门到实战
nginx入门到实战

java调试
java调试中遇到的各种坑

java输入输出流
java输入输出流

快速排序

算法 it书童 2019-10-05 14:56:00 0赞 0踩 691阅读 0评论

分治算法的原理:

  • 找出简单的基线条件

  • 确定如何缩小问题的规模,使其符合基线条件

编写涉及数组的递归函数时,基线条件通常是数组为空或只包含一个元素

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, 7, 4, 9]))
关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
转载须注明出处:https://www.itshutong.com/articles/331/quick-sort
相关推荐