PHP排序 氣泡排序

2021-10-20 02:03:16 字數 1295 閱讀 1017

這個應該是最大眾的排序了。也算是簡單排序演算法中知名度最高的。

氣泡排序的思路是怎麼樣的呢?

首先就是先比較相鄰的兩個元素,如果滿足條件,就交換,否則不動。

然後是再比較接下來的兩個相鄰的元素,然後滿足條件就交換,否則依然不動。

依次迴圈操作下去,最終乙個元素,會固定在最下邊。

舉例:陣列有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次,內...