python如何实现快速排序

611
2023/7/15 12:28:32
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

快速排序是一种常用的排序算法,可以通过递归的方式实现。其基本思想是选择一个基准元素,通过一趟排序将待排序的序列分割成两个部分,其中一部分的所有元素都小于基准,另一部分的所有元素都大于基准,然后对这两部分递归地进行快速排序。

具体实现步骤如下:

  1. 选择一个基准元素(如序列首元素)。

  2. 设置两个指针,一个指向序列的起始位置,一个指向序列的末尾。

  3. 从末尾指针开始,向前遍历,找到第一个小于基准的元素。如果找到,则将该元素放到起始指针的位置,并将起始指针向后移动一位。

  4. 从起始指针开始,向后遍历,找到第一个大于基准的元素。如果找到,则将该元素放到末尾指针的位置,并将末尾指针向前移动一位。

  5. 重复步骤3和步骤4,直到起始指针和末尾指针相遇。

  6. 将基准元素放到相遇位置,此时基准元素的左侧都是小于它的元素,右侧都是大于它的元素。

  7. 递归地对基准元素左侧和右侧的子序列进行快速排序。

以下是用 Python 实现快速排序的代码示例:

def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]  # 选择第一个元素作为基准
left = [x for x in arr[1:] if x < pivot]  # 小于基准的部分
right = [x for x in arr[1:] if x >= pivot]  # 大于等于基准的部分
return quick_sort(left) + [pivot] + quick_sort(right)
# 示例用法
arr = [4, 2, 9, 5, 7, 1, 6, 3, 8]
sorted_arr = quick_sort(arr)
print(sorted_arr)

运行以上代码,输出结果为 [1, 2, 3, 4, 5, 6, 7, 8, 9]

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: python怎么遍历目录所有文件并读取