【数据结构与算法】三种基本排序算法及Python实现:选择排序、冒泡排序与插入排序

三种基本排序算法的python实现:选择排序、冒泡排序以及插入排序


附上python代码:

# 三种排序算法

'''选择排序法
搜索整个列表找到最小值的项,最小项如果不是第一项那么就与第一项交换;
然后,算法到第二个位置,重复这一过程,有必要的话再与第二项交换。以此类推。
'''

def selectsort(lyst):
    for i in range(len(lyst)-1):
        minIndex=i
        for j in range(i+1,len(lyst)):
            if lyst[j]<lyst[minIndex]:
                minIndex=j
        if minIndex!=i:
            lyst[i],lyst[minIndex]=lyst[minIndex],lyst[i]
    return lyst

a=[7,4,8,3,4,2,0]
selectsort(a)

'''冒泡排序法
从头开始比较相邻两项的大小,如果相邻两项顺序不正确则交换,一次遍历后最大值在最后一位。
如此遍历n-1次,得到排序好的列表'''

def bubblesort(lyst):
    n=len(lyst)
    for x in range(n-1):  # 进行n-1次循环
        for i in range(n-1-x):     # 从0到n-x-1需要比较
            if lyst[i]>lyst[i+1]:
                lyst[i],lyst[i+1]=lyst[i+1],lyst[i]
    return lyst

b=[7,4,8,3,4,2,0]
bubblesort(b)

'''插入排序
'''

def insertsort(lyst):
    for i in range(1,len(lyst)):
        val=lyst[i]
        j=i-1
        while j>=0:
            if val<lyst[j]:
                lyst[j+1]=lyst[j]
                j-=1
            else:
                break
        lyst[j+1]=val
    return lyst

c=[7,4,8,3,4,2,0]
insertsort(c)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值