当前位置: 首页 > 后端技术 > Python

一行语句实现快速排序

时间:2023-03-25 21:16:36 Python

突然想起前阵子看《算法图解》的新知识——快速排序。当然,应该没有程序员不知道这些知识吧?书中给出的python代码非常简洁,所以我利用Python的特性进一步简化了重写,最后给出了一个可以一行完成的快速排序实现,如下:defqsort(array):returnarray如果len(array)<2elseqsort([xforxinarray[1:]ifx=array[0]])简单说明一下思路:如果数组只有0个或1个元素,则直接返回,否则递归返回三个列表的拼接:第一个列表是小于array[0]的元素,而第二个数组是数组[0]本身,第三个数组是大于数组[0]的元素,这就是快速排序的基本思想。当然,选择列表的第一个元素作为基准并不是快速排序的最优策略,但也是一种比较常用的方法。