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