排序算法:冒泡、选择、插入、希尔、归并、快速、基数、堆排序 python实现

本文详细介绍了冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、基数排序和堆排序的原理及Python代码实现,涵盖了各种排序算法的基本思想和操作过程。

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

即冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、基数排序、堆排序等
一、冒泡排序
基本思想: 两个数比较大小,较大的数下沉,较小的数冒起来。
过程:
比较相邻的两个数据,如果第二个数小,就交换位置。从后向前两两比较,一直到比较最前两个数据。最终最小数被交换到起始的位置,这样第一个最小数的位置就排好了。继续重复上述过程,依次将第2.3…n-1个最小数排好位置。
python实现:

def maopao(arr):
    n = len(arr)
    for i in range(n):
        for j in range(n-i-1):
            if arr[j] > arr[j+1]:
                arr[j],arr[j+1]=arr[j+1],arr[j]
    return arr
print(maopao(arr))

图例:
在这里插入图片描述
二、选择排序
基本思想:
在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换;第二次遍历n-2个数,找到最小的数值与第二个元素交换;。。。
第n-1次遍历,找到最小的数值与第n-1个元素交换,排序完成。
python代码实现:

def xuanze(arr):
    for i in range(len(arr)):
        x = i
        for j in range(i, len(arr)):
            if arr[j] < arr[x]:
                x = j
        arr[i], arr[x] = arr[x], arr[i]
    retu
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值