經典排序演算法(一) 氣泡排序

2021-08-17 05:36:08 字數 1166 閱讀 3147

氣泡排序是最基礎的一種排序方法,在我們剛接觸程式語言的迴圈時,常常會接觸到這種演算法,利用的是氣泡越冒越大的原理。

它的時間複雜度為o(n^2),具體原理如下:

假設現在有一行待排序的數:1,5,2,6,3

利用氣泡排序演算法時,程式是這樣執行的。

(1)第一組排序:(找出最大的數並放至隊尾)

程式會拿出這一行數字的第乙個和第二個數(1 和 5)進行比較:

將較大的數字往後排,1 < 5,所以 5 在後面;

[ 1,2 ] 5, 6,3
(2)當第乙個數和第二個數排好序後,程式會將第二個和第三個數拿出來做比較。這時第二個數比第三個數大(5>2)第三個數和第三個數進行交換;

1,[ 5,2 ] 6,3   ----->    1,[ 2,5 ] 6,3
繼續比較下一組數;

1,2,[ 5,6 ] 3
較大的數字後移,繼續下一組比較;

1,2,5,[ 6,3 ]     ----->    1,2,5,[ 3,6 ]
直到最後一組,比較完成後,最大的數字將出現在隊尾;

1,2,5,3,*6*
(2)第一組排序完成,將最大的數比較出來後進行第二組排序:(將第二大的數放至佇列的第(n-1)位)排序的方式同第一組的排序方式

[ 1,2 ] 5,3,6

1,[ 2,5 ] 3,6

1,2,[ 5,3 ] 6 -----> 1,2,[ 3,5] 6

1,2,3,[ 5,6 ]

經過第二組排序,確定了第(n-1)處的位置

1,2,3,*5* 6
……………..

……………..

……………..

直到將第2處位置上的數字確定好後,整個排序演算法結束。

(**於網路,侵刪)

氣泡排序只適用於小資料量排序,如果資料量過大會嚴重影響演算法效率。

經典演算法(一) 氣泡排序

校園招聘馬上就要來臨了,作為過來人,演算法在筆試中必考,因為畢竟是學生,大部分沒有專案經驗,只能問一些基礎的知識!今天帶大家學習演算法中的經典 氣泡排序,也是去年我參加筆試考的最多的演算法之一。一 演算法描述 氣泡排序 依次比較相鄰的資料,將小資料放在前,大資料放在後 即第一趟先比較第1個和第2個數...

經典排序演算法,氣泡排序

氣泡排序是本人在大一學習c語言的時候就已經學過了,最近這段時間想起來把比較經典的排序演算法拿來回顧一下,鞏固一下知識。氣泡排序的核心就是比較相鄰兩個數的大小,然後將小的 或者大的 放到前面去,經過一趟之後,就能把最小或者最大的放到最前面,第二趟排序的時候,第乙個數不參與排序,從第二個數開始,經過一趟...

經典排序演算法 氣泡排序

對列表的無序部分從頭至尾掃瞄一遍,掃瞄過程中通過不斷交換相鄰兩個元素,最終把最大 小 元素交換到列表末尾。首先比較第一和第二個數,把較大的放在第二位。比較第二個和第三個數,再把較大的數放在第三位。如此比較下去,直到比較完最後兩個數。這樣就把整個列表中最大的數交換到了末尾。上面三步只是完成了對列表無序...