介绍
快速排序的思想是分而治之,将一个大问题分为很多个小问题来解决
代码
def quick_sort(nums: list) -> list:
if len(nums) < 2:
return nums
else:
compare_num = nums[0]
left_nums = [_ for _ in nums[1:] if _ <= compare_num]
right_nums = [_ for _ in nums[1:] if _ > compare_num]
return quick_sort(left_nums) + [compare_num] + quick_sort(right_nums)
例子图示
每次取列表的第一个元素作为比对值,将比它小的数放在左边,将比它大的值放在右边,递归的进行这些操作,最后将列表合并起来就可以得到有序的数组
时间复杂度
O(nlogn)