leetcode之912. 排序数组 | 极简快排

912. 排序数组

给你一个整数数组 nums,请你将该数组升序排列。

示例 1:

输入:nums = [5,2,3,1]
输出:[1,2,3,5]
示例 2:

输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]
提示:

1 <= nums.length <= 50000
-50000 <= nums[i] <= 50000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sort-an-array

由于思想很简单写起来很复杂我就去找有没有极简实现快排的方法,如果用这个教学我觉得应该没有学生会不懂快排的。
一句话快排,跟第一位比,比它小的放左边,比它大的放右边,它自己放中间,结束条件是当它为空的时候不继续排了返回空。
感谢 https://blog.xupengit.top/index.php/20190824/cid=180.html 提供的方法

class Solution:
    def sortArray(self, nums: List[int]) -> List[int]:
        return self.sortArray([nums[i] for i in range(len(nums)) if nums[i]<nums[0] and i!=0]) \
                + [nums[0]] \
                + self.sortArray([nums[i] for i in range(len(nums)) if nums[i]>=nums[0] and i!=0]) \
                if len(nums)>0 else nums
posted @ 2020-03-31 16:44  ManWingloeng  阅读(266)  评论(0编辑  收藏  举报