python经典代码
def quick_sort(arr):
"""
经典快速排序算法的 Python 实现(分治思想)
参数:
arr: 待排序的列表(支持数字、字符串等可比较类型)
返回:
排序后的新列表(原列表不会被修改)
"""
# 基线条件:列表长度≤1时,本身就是有序的,直接返回
if len(arr) <= 1:
return arr
# 选择基准值(pivot):这里选列表第一个元素(也可选中位/最后一个,效果类似)
pivot = arr[0]
# 分治:将列表分为三部分
less = [x for x in arr[1:] if x <= pivot] # 小于等于基准值的元素
greater = [x for x in arr[1:] if x > pivot] # 大于基准值的元素
# 递归处理子列表,并合并结果:左半部分 + 基准值 + 右半部分
return quick_sort(less) + [pivot] + quick_sort(greater)
# 主程序测试
if __name__ == "__main__":
# 测试用例1:整数列表
int_list = [3, 6, 8, 10, 1, 2, 1]
sorted_int = quick_sort(int_list)
print("原整数列表:", int_list)
print("排序后:", sorted_int)
# 测试用例2:字符串列表(Python 支持字符串按 ASCII 码排序)
str_list = ["apple", "banana", "cherry", "date", "blueberry"]
sorted_str = quick_sort(str_list)
print("\n原字符串列表:", str_list)
print("排序后:", sorted_str)
阅读全文