数据结构day1:排序

本文详细介绍了两种经典的排序算法:冒泡排序和快速排序的Python实现。冒泡排序通过重复遍历列表,比较相邻元素并交换位置来排序;快速排序采用分治策略,选择一个元素作为基准,将数组分为小于和大于基准的两部分,递归排序子数组。通过具体代码实例展示了两种算法的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,冒泡排序算法的python实现

def bubble_sort(alist):
    pass
    count = len(alist)-1
    for index in range(count,0,-1):
        for new_index in range(index):
            if alist[new_index] > alist[new_index + 1]:
                alist[new_index],alist[new_index+1] = alist[new_index+1],alist[new_index]

    return alist

li = [9,3,5,7,11,34,88,45,32]
print(bubble_sort(li))

2,快速排序算法的python实现

def quick_sort(alist,left,right):
    if left >= right:
        return alist
    low = left
    high = right
    key = alist[low]

    while low < high:
        # 先从右向左
        if low < high and alist[high] >= key:
            high -= 1
        alist[low] = alist[high]

        # 再从左到右
        if low < high and alist[low] <= key:
            low += 1
        alist[high] = alist[low]

    alist[high] = key

    quick_sort(alist,left,low-1)
    quick_sort(alist,low+1,right)
    return alist  # 不要少了这一句

li = [9,3,5,7,11,34,88,45,32]
print(quick_sort(li,0,8))

 

转载于:https://www.cnblogs.com/lisa-blog/p/10246476.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值