這個應該是最大眾的排序了。也算是簡單排序演算法中知名度最高的。
氣泡排序的思路是怎麼樣的呢?
首先就是先比較相鄰的兩個元素,如果滿足條件,就交換,否則不動。
然後是再比較接下來的兩個相鄰的元素,然後滿足條件就交換,否則依然不動。
依次迴圈操作下去,最終乙個元素,會固定在最下邊。
舉例:陣列有5個元素從小到大排序,首先第乙個和第二個比,第乙個比第二個大,就交換,否則不操作
然後第二個和第三個比較,第二個大於第三個則交換,否則依然不動。直到對比到第四個和第五個對比。
經過一輪的迴圈對比,最大的數字就下沉到最下邊了。小的數字逐漸向上浮出。。
**如下(示例):
// 氣泡排序
function bubble_sort
($arr)}}
return $arr;
} $arr =[5
,2,4
,7,9
,4,2
,6,8
,3];
print_r
(bubble_sort
($arr)
);
以上**呢,是標準的氣泡排序,**實現也完全符合氣泡排序的說法。
但是,在實際上,有很多人把氣泡排序寫成了另一種樣子。
**如下(示例):
//排序
function paixu
($arr)}}
return $arr;
} $arr =[5
,2,4
,7,9
,4,2
,6,8
,3];
print_r
(paixu
($arr)
);
這個寫法,大致看上去和標準的氣泡排序寫法非常相似,思路也非常像。
這個排序的思路是怎麼樣呢?
首先,假設還是實現陣列的從小到大的排序。
第一輪迴圈,用陣列的第乙個元素,逐一和第二個一直到最後乙個元素比對,每次對比,只要誰小,誰就和第乙個元素交換。
第二輪迴圈,則從第二個元素開始,逐一和第三個到最後乙個比對,誰小,就和第二個元素交換。一直這樣迴圈比對,直到最後。
這每輪迴圈,都把最小的那個元素上浮到了最頂上。
標準的氣泡排序是每一輪把最大的確定在最後,而這個排序沒一輪把最小的確定在最前邊。
可以說這兩個真的算是比較像了,當然,這個排序的形式,也很像選擇排序。
目前為止,咱這也說不好,這個後邊的排序,到底算氣泡排序?還算選擇排序呢?或者他有自己的名字。
有了解的朋友,還望多指教。
php 氣泡排序
基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重複以上過程,仍從第一對數開始比較 因為可能由於第2個數和第3個數的交換,使得第1個...
PHP氣泡排序
基本概念 氣泡排序 bubblesort 的基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一趟結束,將最大的數放到...
php 氣泡排序
由於在排序過程中總是小數往前放,大數往後放,相當於氣泡往上公升,所以稱作氣泡排序。氣泡排序是經過n 1趟子排序完成的,第i趟子排序從第1個數至第n i個數,若第i個數比後乙個數大 則公升序,小則降序 則交換兩數。10個數進行排序,用二重迴圈實現,外迴圈變數設為i,內迴圈變數設為j,外迴圈重複9次,內...