赞
踩
快速排序(Quick Sort)
是一种经典的排序算法,属于比较排序的一种。它的基本思想是通过分治的策略将原始的无序序列划分成较小的子序列,然后分别对这些子序列进行排序,最终合并得到有序的序列。
选择基准值(pivot)
: 从待排序的序列中选择一个元素作为基准值,通常选择第一个元素、最后一个元素或者随机选择。分区(Partition)
: 将序列中小于等于基准值的元素放到基准值的左边,大于基准值的元素放到右边。这一步通常使用双指针法或者单边扫描法来实现。递归排序
: 递归地对基准值左右两侧的子序列进行排序。合并结果
: 将排序好的左侧子序列、基准值和右侧子序列合并成最终的有序序列。快速排序的优点是平均情况下具有较高的排序速度,尤其适用于大规模数据的排序。然而,快速排序也有一些缺点,比如对于已经基本有序的序列,快速排序的效率会下降,因为它的分区策略可能导致递归树不平衡,增加了比较和交换的次数。
def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
less_than_pivot = [x for x in arr[1:] if x <= pivot]
greater_than_pivot = [x for x in arr[1:] if x > pivot]
return quick_sort(less_than_pivot) + [pivot] + quick_sort(greater_than_pivot)
# 示例用法
my_list = [3, 6, 8, 10, 1, 2, 1]
sorted_list = quick_sort(my_list)
print(sorted_list)
quick_sort
函数接受一个数组作为参数,并使用快速排序算法对数组进行排序。首先,它选择数组中的第一个元素作为基准值(pivot),然后将数组分成两部分:小于等于基准值的部分和大于基准值的部分。接着,递归地对这两部分进行排序,最后将排序好的两部分数组和基准值合并成最终的排序结果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。