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)
阅读全文