以下是一个使用 **Python** 编写的 **快速排序(Quicksort)** 算法示例。该实现采用递归方式,结合了列表推导式,结构清晰,适合初学者理解分治思想。 --- ### ✅ 功能说明 - **输入**:一个未排序的整数列表。 - **输出**:一个按升序排列的整数列表。 - **算法**:快速排序(Divide and Conquer) - **特点**:代码简洁,使用列表推导式实现分组(小于、等于、大于基准值)。 --- ### 🧠 算法思路 1. **基准值(pivot)**:选择列表中间的元素作为基准。 2. **分组**: - 小于基准值的元素组成左子列表。 - 等于基准值的元素组成中间列表。 - 大于基准值的元素组成右子列表。 3. **递归排序**:对左子列表和右子列表递归调用快速排序。 4. **合并结果**:左子列表 + 中间列表 + 右子列表。 --- ### 🧾 代码实现 ```python def quicksort(arr): """ 使用递归实现快速排序算法。 参数: arr (list): 待排序的整数列表 返回: list: 按升序排列的整数列表 """ 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) # 示例:测试快速排序函数 if __name__ == "__main__": unsorted_list = [3, 6, 8, 10, 1, 2, 1] sorted_list = quicksort(unsorted_list) print("排序后的列表:", sorted_list) ``` --- ### 📌 示例输出 ``` 排序后的列表: [1, 1, 2, 3, 6, 8, 10] ``` --- ### 📝 说明 -
再写一个
- 作者:China-Zhejiang-Jiaxing
- 日期:2025年5月28日 14:52
- 浏览:2
评论区: