冒泡排序

题目:给出一个列表,把数字由大到小排列

方法一:
l=[30,2,5,50] for a in range(len(l)-1): for b in range(len(l)-a-1): if l[b]<l[b+1]: l[b],l[b+1]=l[b+1],l[b] print(f'最终结果是{l}')

方法二:使用函数sort(),默认是从小到大排列

l=[30,2,5,50]

l.sort(reverse=True)
print(l)

分析:a表示需要比较几轮,b表示一轮需要比较多少次。列表长度是4,第一轮比较会排出一个数字,剩余3个数字进行比较,第二轮排出一个数字,剩余2个数字进行比较,第三轮2个数字只比较一次就行;

       所以外循环次数是列表长度-1,即:len(l)-1;内循环在第一轮需要比较3次,第二轮需要比较2次,第三轮需要比较1次,即:len(l)-a-1

      比较时进行判断,如果第一个数比第二个数小,就进行位置互换,l[b],l[b+1]=l[b+1],l[b],依次循环

 

posted @ 2022-05-18 14:46  呆萌呆萌呆萌  阅读(25)  评论(0编辑  收藏  举报