快速排序是一种高效的排序算法,采用分而治之的策略来对一个数组进行排序。下面是一个使用Python编写的快速排序算法的实现示例:
def quicksort(arr):
if len(arr) <= 1:
return arr
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 = [10, 7, 8, 9, 1, 5]
sorted_arr = quicksort(arr)
print(sorted_arr)
这段代码首先检查数组长度,如果数组长度为1或0,则直接返回该数组(因为单个元素或空数组自然是有序的)。然后,它选择一个基准元素(这里选择中间元素),并遍历数组将元素分配到三个列表中:小于基准的、等于基准的、大于基准的。最后,它递归地对小于基准和大于基准的子数组进行快速排序,并将排序后的子数组与等于基准的元素列表合并,得到最终的有序数组。