Python編程: 排序

  • 永久排序: sort() 這個方法沒有返回值
 list1=[96,28,-1,36,22,75,9,18]
 list1.sort()
  • sort()倒序排序,設(shè)置reverse=True
list1=[96,28,-1,36,22,75,9,18]
 list1.sort(reverse=True)
  • 臨時排序 sorted() ,返回值為排序后的列表,是一個新的對象
 list1_new=sorted(list1)
 print(list1_new)
  • sorted()倒序排序,設(shè)置reverse=True
 list1_new=sorted(list1,reverse=True)
  • 翻轉(zhuǎn)列表,不排序
 print(list1[::-1])

冒泡算法

5,4,3,2,1 原始數(shù)據(jù) n個數(shù), 第一輪比較n-1次

第一次比較
4,5,3,2,1 第一次比較,將5和4的位置互換
4,3,5,2,1 第二次比較,將5和3的位置互換
4,3,2,5,1 第三次比較,將5和2的位置互換
4,3,2,1,5 第四次比較,將5和1的位置互換,第一論比較結(jié)束,最大的數(shù)沉底

第二輪比較
4,3,2,1,5 第二輪比較n-2次
3,4,2,1,5 第一次比較,將4和3的位置互換
3,2,4,1,5 第二次比較,將4和2的位置互換
3,2,1,4,5 第三筆比較,將4和1的位置互換

第三輪比較
3,2,1,4,5 第三輪比較n-3次
2,3,1,4,5 第一次比較,將3和2的位置互換
2,1,3,4,5 第二次比較,將3和1的位置互換

第四輪比較
2,1,3,4,5 第四輪比較n-4次
1,2,3,4,5 第一次比較,將2和1的位置互換 n個數(shù)一共比較了n-1輪

 list1=[96,28,-1,36,22,75,9,18]
 for i in range(len(list1)-1):  # 控制比較多少輪
     for j in range(len(list1)-1-i):  # 控制每輪比較多少次
         if list1[j]>list1[j+1]:  # 如果前面的數(shù)比后面的數(shù)大,則兩數(shù)互換
             print(f'第{j}位和第{j+1}位的順序不對')
             print(f'變化之前-------------------------->{list1}')
             list1[j],list1[j+1]=list1[j+1],list1[j]
             print(f'變化之后-------------------------->{list1}')
     print(f'第{i+1}輪循環(huán)結(jié)束')
 print(list1)

圖解
1626333693864081749.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容