快速排序的算法实例
以下是快速排序的算法实例,使用Python编写:
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[0]
left = []
right = []
for i in range(1, len(arr)):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quick_sort(left) + [pivot] + quick_sort(right)
# 测试
arr = [3, 1, 5, 2, 4]
sorted_arr = quick_sort(arr)
print(sorted_arr) # 输出 [1, 2, 3, 4, 5]
在上述代码中,我们首先判断输入的数组长度是否小于等于1,如果是,则直接返回该数组。如果不是,我们选择数组中的第一个元素作为枢轴(pivot),然后将数组中剩余的元素分别与枢轴进行比较,小于枢轴的放在左边,大于等于枢轴的放在右边。然后对左右两个子数组进行递归操作,最终将左子数组、枢轴和右子数组连接起来得到排序后的数组。
原文地址: http://www.cveoy.top/t/topic/bFC8 著作权归作者所有。请勿转载和采集!