首頁  >  文章  >  每日程式設計  >  冒泡排序詳細解析

冒泡排序詳細解析

**熬夜选手
**熬夜选手原創
2020-05-01 15:42:30191瀏覽

冒泡排序

對於剛接觸程式設計和演算法的朋友來說,對於排序演算法可能不太清晰,接下來我們一起來分析下冒泡排序。

冒泡排序的原理是什麼了?

遍歷一個數組,在此過程中,將相鄰的兩個單元的值進行比較:如果前面的比後面的大,則將兩個值交換位置。這個過程到最後,數組中的最大值一定放在最後位置了。

如果將上述過程再進行一遍,則又可以確定剩餘資料中的最大值放在倒數第二的位置。

然後將上述過程繼續進行一遍,則可以繼續確定剩餘資料中的最大值放在倒數第三的位置。

依序類別推。 。 。 。 。

圖示:

##221215239第一趟18221215#923第二趟182212#9#1523第三班 18#22#91215 23第四趟18#91215 22
原始陣列
18


23
第五趟


#9

12

15

18

22

23

#程式碼示範:######
$arr1 = array(18,22,12,15,23,9);
    $n = count($arr1);
    //控制要进行的躺数
    for($i = 0;$i < $n-1;$i++){
        //在每一趟里面,控制进行比较的次数
        for($k = 0;$k < $n-1-$i;$k++){
            if ($arr1[$k] > $arr1[$k+1]) {
                $temp = $arr1[$k];
                $arr1[$k] = $arr1[$k+1];
                $arr1[$k+1] = $temp;
            }
        }
    }
###最後讓我們來總結規律:############1.要進行從頭到尾兩兩比較並進行交換位置的趟數為$n-1趟,$n是總個數(陣列長度) ############2.每次都對相鄰的兩個資料進行大小比較,如果需要,就交換他們的位置! ############3.每趟要比較的次數都比前一趟少1次,第一趟要比較的次數為:$n-1######

以上是冒泡排序詳細解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn