python实现数据结构——排序算法(持续更新)

选择排序法

选择排序法,遍历列表中的所有元素,然后每次从剩下的元素中拿出最小的元素,并将拿出来的元素放在正确的位置上。。。。。长此以往。
选择排序的时间复杂度为O(n**2)

def SelectSort(data):
    for i in range(len(data)-1):
        minindex = i
        for j in range(i+1,len(data)):
            if data[j] < data[minindex]:
                minindex = j
        if minindex != i:
            data[i],data[minindex] = data[minindex],data[i]
    return data


if __name__ == '__main__':
    data = [5,2,1,3,6,4]
    print(SelectSort(data))

插入排序法

插入排序法,它在列表较低的一端维护一个 有序的子列表,并逐个讲每个新元素“插入”这个子列表。
相关原理请参照
https://www.runoob.com/python3/python-insertion-sort.html
插入排序的时间复杂度为O(n**2)

def SelectSort(data):
    for i in range(len(data)-1):
        minindex = i
        for j in range(i+1,len(data)):
            if data[j] < data[minindex]:
                minindex = j
        if minindex != i:
            data[i],data[minindex] = data[minindex],data[i]
    return data


if __name__ == '__main__':
    data = [5,2,1,3,6,4]
    print(SelectSort(data))

冒泡排序法

def bubbleSort(alist):
    for passnum in range(len(alist)-1,0,-1):
        for i in range(passnum):
            if alist[i] > alist[i+1]:
                temp = alist[i]
                alist[i] = alist[i+1]
                alist[i+1] = temp

    return alist


def shortbubleSort(alist):
    passnum = len(alist) -1
    exchanges = True
    while passnum>0 and exchanges:
        exchanges = False
        for i in range(passnum):
            if alist[i] > alist[i+1]:
                alist[i],alist[i+1]=alist[i+1],alist[i]
                exchanges = True
        passnum = passnum-1

本人也是初学,有疑问可加QQ1297716447,说明来意,互相交流学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值