数据结构中排序算法

插入排序:

#插入排序:假使左边元素是有序的,在右边元素中选出元素,与左边的元素进行比较,然后放到恰当的有序位置。思想:从右边选出元素放在左边,使得
#左边部分是有序的,右边元素为空,左边元素有序,排序停止
def insert_sort(alist):
    n = len(alist)
    #从右边的无序序列中取出多少个元素执行这样的过程
    for j in range(1,n):
         #i代表的是内层循环起始
        i = j  
        #执行从右边的无序序列中取出第一个元素,即i位置的元素,然后将其插入到前面的正确位置中
        while i>0:
            if alist[i] < alist[i-1]:
                alist[i],alist[i-1] = alist[i-1],alist[i]
                i -= 1
            else:
                break

if __name__=="__main__":
    li = [6,5,3,1,8,7,2,4]
    print(li)
    insert_sort(li)
    print(li)

选择排序:

#选择排序 最优最坏时间复杂度都为O(n2)不稳定
def select_sort(alist):
    n = len(alist)
    for j in range(0,n-1):#j:0-(n-2)
        min_index = j
        for i in range(j+1,n):
            if alist[min_index] > alist[i]:
                min_index = i
        alist[j],alist[min_index] = alist[min_index],alist[j]
            
if __name__=="__main__":
    li = [54,26,93,17,77,31,44,55,20]
    print(li)
    select_sort(li)
    print(li)

冒泡排序:

#bubble_sort
def bubble_sort(alist):
    n = len(alist)
    for j in range(0,n-1):
        for i in range(0,n-1-j):
            if alist[i] > alist[i+1]:
                alist[i],alist[i+1] = alist[i+1],alist[i]
                
if __name__=="__main__":
    li = [23,45,1,34,65]
    print(li)
    bubble_sort(li)
    print(li)

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值