python面试题-----列表冒泡排序

在之前面试中,碰到好几家。让写个冒泡排序出来,这边就稍微写一下

列表冒泡排序

1、数字冒泡排序:

list1 =[2213,123,4,112,3,331,3214]	

for i in range(len(list1)-1):
    for j in range(len(list1)-(i+1)):
   
        if list1[j] > list1[j+1]:
         #如果前面的数比后面大,则前后两个数对调位置
            list1[j],list1[j+1] = list1[j+1],list1[j]
            print(list1)

在这里插入图片描述

2、字符串比长度冒泡排序:

list2 =["Sadasfa",'sdas','sdsa2f','ss','a','ffafafsf']

for i in range(len(list2)-1):
    for j in range(len(list2)-(i+1)):
        if len(list2[j]) > len(list2[j+1]):
         #如果前面的字符串长度比后面长,则前后两个字符串对调位置
            list2[j],list2[j+1] = list2[j+1],list2[j]
            print(list2)

在这里插入图片描述

3.列表中元组冒泡排序:

list1 = [("Sadasfa",'sdas','sdsa2f','ss','a','ffafafsf'),22,321,1,("aaeqweqw",'dssqa','saew1','sda','2sdgfd')]

for i in list1:
    if type(i) == tuple:
        a=list(i)#先将元组转换成列表,因为元组数据不可变
        for j in range(len(a)-1):
            for b in range(len(a)-(j+1)):
                if len(a[b]) > len(a[b+1]):
                #如果前面的字符串长度比后面长,则前后两个字符串对调位置
                    a[b],a[b+1]=a[b+1],a[b]
                    print(a)
        a = tuple(a)#冒泡完之后再讲列表转换回元组
        print(a)

在这里插入图片描述

如果想要降序冒泡,把 “>” 改成 “<” 就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值