一个快速排序算法代码分享


快速排序是一种高效的排序算法,采用分而治之的策略来对一个数组进行排序。下面是一个使用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,则直接返回该数组(因为单个元素或空数组自然是有序的)。然后,它选择一个基准元素(这里选择中间元素),并遍历数组将元素分配到三个列表中:小于基准的、等于基准的、大于基准的。最后,它递归地对小于基准和大于基准的子数组进行快速排序,并将排序后的子数组与等于基准的元素列表合并,得到最终的有序数组。