c++ 冒泡排序_干货|python笔记1-冒泡排序
面試的時候經常有面試官喜歡問如何進行冒泡排序?這個問題相信可以難倒一批的同學,本篇就詳細講解如何用python進行冒泡排序。
基本原理
01概念:
冒泡排序是一種交換排序,它的基本思想是:兩兩比較相鄰記錄的關鍵字,如果反序則交換,直到沒有反序的記錄為止。
它重復地走訪過要排序的數列,一次要比較兩個元素,如果這兩個元素的順序錯誤就將他們兩個交換過來。走訪數列的工作是重復進行的,直到沒有再需要交換的元素,也就說該數列已經完成排序了。
這個算法名字的由來就是因為大的元素會通過交換慢慢“浮”到數列的頂端。
02算法原理:
冒泡排序算法的運作如下:(從后向前)
- 比較相鄰的兩個數,如果第一個數比第二個數大,則兩數交換。
- 對之后的相鄰元素進行同樣的工作,從開始到最后一對,這樣進行一次排序后,數據的最后一位會是最大值 ,第一次循環進行的次數為 arr.length-1。
- 之后對所有的元素重復以上的步驟,且以后每次循環的次數為arr.length-1-i (i為循環第幾次 ,i 從零開始);
- 重復上述步驟,直到排序完成。
交換兩個數
1.如果a = 10 , b = 20如何交換兩個數呢?
2.實現兩個數的交換原理其實很簡單,設一個臨時變量c就可以了:
>先把a的值傳給c,此時c的值就是10了,a的值還是10
>然后把b的值傳給a,此時a的值是20,b的值還是20
>最后把c的值傳給b, 此時b的值是10
3.python里面交換兩個數不用那么復雜,用這個方法就行了:
>a , b = b, a
遍歷比較相鄰的數
1.比如一個隊列是:[1, 3, 10, 9, 21, 35, 4, 6]
2.可以做一次遍歷,比較相鄰的數,后面的數比前面的數小就交換,這樣第一次遍歷可以把最大的數下沉到最后一個位置。
循環下沉
1.與上面的遍歷做比較就只做了一次下沉,把最大的數下沉到最后一個位置上,那接下來就需要把第二大的數,下沉到倒數的第二個位置,依次循環,一直到最小的數在最前面。
2.這里s是先計算li隊列的長度,然后把range函數反轉了,變成:[7, 6, 5, 4, 3, 2, 1, 0]
sort()排序
說實話,python里面排序只用一個函數就可以搞定:sort()
參考代碼
以上是python筆記1—冒泡排序的全部內容,如果覺得對你有幫助,可以添加“收藏”!
如果還有疑問的地方,歡迎評論留言給我們~
總結
以上是生活随笔為你收集整理的c++ 冒泡排序_干货|python笔记1-冒泡排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB绘图/数据的可视化
- 下一篇: 移动端REM布局方案