算法基礎之冒泡排序(一)

算法基礎之冒泡排序(一)
說起到冒泡排序,想必都不會陌生。這個名詞在面試中會經常出現,當然了,這個也是我們算法基礎的學習基石,等同於 Hello Word啦。
下面我們就瞭解一下冒泡排序,先認識一下冒泡排序的原理:

比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。 對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。 針對所有的元素重複以上的步驟,除了最後一個。 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較;
–摘自百度

上面這段話的核心呢,就是兩層比較;
那什麼是兩層比較呢?接着往下看

首先,我現在有一個無序的數組
在這裏插入圖片描述
現在我需要把這個數組 從無序變成有序,那麼第一層比較就要來了

第一層比較首先要確定的是要比較幾輪,這個是重點
1、每比較一輪我們都能確定一個最大或者最小的數值,第一輪比較完我們就能知道最大數值是多少,但是其他的數值不清楚
2、在下一輪的比較中,那些確定的數就不用參加比較了,第一輪已知最大的數不參加,從剩下的數值中取最大的,以此類推。
3、當倒數第二輪數值也被比較完後,最後一輪就不用比較了,也就剩下這一個數了;

總結:一個有N個數值的數組,我們需要比較N-1輪,剩下的最後一個就能自動確定了,每輪的比較都要拿到一個最大或最小的數值;

第二層比較:在每一輪比較中,要確定比較幾次
打個比方,有3個數值,我們需要比較兩次就能求出它的最大數,同樣的, 有N個數值,需要比較N-1次

瞭解原理後,我們就可以開始着手代碼塊了

在這裏插入圖片描述
這樣一個最基礎的冒泡排序就完成啦;
下期見!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章