Bootstrap

Python面试题:编写一个 Python 程序来实现快速排序算法

以下是一个使用 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. 基础情况
    如果数组的长度小于或等于 1,那么它已经是排序好的,直接返回该数组。

  2. 选择枢轴(pivot)
    我们选择数组中间的元素作为枢轴。

  3. 划分数组

    • left:包含所有小于枢轴的元素。
    • middle:包含所有等于枢轴的元素。
    • right:包含所有大于枢轴的元素。
  4. 递归排序
    递归地对 leftright 部分进行快速排序,并将 leftmiddleright 连接起来组成最终的排序结果。

测试和输出

运行以上代码,将得到以下输出:

Original array: [3, 6, 8, 10, 1, 2, 1]
Sorted array: [1, 1, 2, 3, 6, 8, 10]

这样,一个简单的快速排序算法在 Python 中就实现了。你可以修改测试数组来验证排序结果。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;