以下是一个使用 Python 实现的快速排序算法(Quicksort)程序:
def quicksort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quicksort(left) + middle + quicksort(right)
# 测试快速排序算法
arr = [3, 6, 8, 10, 1, 2, 1]
print("Original array:", arr)
sorted_arr = quicksort(arr)
print("Sorted array:", sorted_arr)
代码解释
-
基础情况:
如果数组的长度小于或等于 1,那么它已经是排序好的,直接返回该数组。 -
选择枢轴(pivot):
我们选择数组中间的元素作为枢轴。 -
划分数组:
left
:包含所有小于枢轴的元素。middle
:包含所有等于枢轴的元素。right
:包含所有大于枢轴的元素。
-
递归排序:
递归地对left
和right
部分进行快速排序,并将left
、middle
和right
连接起来组成最终的排序结果。
测试和输出
运行以上代码,将得到以下输出:
Original array: [3, 6, 8, 10, 1, 2, 1]
Sorted array: [1, 1, 2, 3, 6, 8, 10]
这样,一个简单的快速排序算法在 Python 中就实现了。你可以修改测试数组来验证排序结果。