冒泡排序
對於剛接觸程式設計和演算法的朋友來說,對於排序演算法可能不太清晰,接下來我們一起來分析下冒泡排序。
冒泡排序的原理是什麼了?
遍歷一個數組,在此過程中,將相鄰的兩個單元的值進行比較:如果前面的比後面的大,則將兩個值交換位置。這個過程到最後,數組中的最大值一定放在最後位置了。
如果將上述過程再進行一遍,則又可以確定剩餘資料中的最大值放在倒數第二的位置。
然後將上述過程繼續進行一遍,則可以繼續確定剩餘資料中的最大值放在倒數第三的位置。
依序類別推。 。 。 。 。
圖示:
原始陣列 |
18 | ##2212 | 23 | 9 | ||
18 | 12 | 15 | #9 | 23 | ||
18 | 22 | 12 | #9 | #15 | 23 | |
第三班 | 18 | #22 | #9 | 12 | 15 | 23 |
第四趟 | 18 | #9 | 12 | 15 | 22 |
23 |
#9
12
18
2223
#程式碼示範:######
$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中文網其他相關文章!