氣泡排序,英語為bubble sort,台灣翻譯為泡沫排序。時間複雜度為o(n^2),空間複雜度為o(1),屬於原地排序,是穩定的排序演算法。
以公升序為例,氣泡排序可以這樣描述:
1 比較相鄰的兩個元素,如果第乙個元素大於第二個元素,就交換他們
2 對每乙個相鄰元素進行互動,直到最後乙個。一趟下來,最大的元素就到了最後
3 針對所有的元素重複上面的操作,直到沒有元素可以交換
總結一下就是:交換相鄰元素,大數沉底
php**如下:
<?php執行結果如下:function
bubble_sort($arr, $sort
= true)}}
return
$arr;
}$arr
= [1, 6, 8, 10, 2, 5, 7, 9, 1];
echo
"原始資料:
\n";
print_r($arr);
echo
"公升序後的資料:
\n";
print_r(bubble_sort($arr));
原始資料:
array
([0] => 1
[1] => 6
[2] => 8
[3] => 10
[4] => 2
[5] => 5
[6] => 7
[7] => 9
[8] => 1
)公升序後的資料:
array
([0] => 1
[1] => 1
[2] => 2
[3] => 5
[4] => 6
[5] => 7
[6] => 8
[7] => 9
[8] => 10)
引用部落格上的,更進一步說明演算法的步驟
引用一些維基百科(氣泡排序)上的,幫助進一步理解氣泡排序演算法的思想
php 實現冒泡演算法
氣泡排序的基本思想是 每次比較兩個相鄰的元素,如果它們的順序錯誤就把它們交換過來 例如我們需要將 12 35 99 18 76 這 5個數進行從大到小的排序。既然是從大到小排序,也就是說越小的越靠後,你是不是覺得我在說廢話,但是這句話很關鍵 首先比較第 1 位和第 2 位的大小,現在第 1 位是 1...
PHP 遞迴實現冒泡演算法
冒泡演算法 遞迴實現 function maopao array,index 0 index return maopao array,index return maopao array,index arr array 12,4,3,1,9,5,6,8,7 var dump maopao arr ar...
PHP 遞迴實現冒泡演算法
冒泡演算法 遞迴實現 function maopao array,index 0 index return maopao array,index return maopao array,index arr array 12,4,3,1,9,5,6,8,7 var dump maopao arr ar...