當前位置:成語大全網 - 書法字典 - PHP實現了常見的排序算法。

PHP實現了常見的排序算法。

註:為方便描述,以下排序均為正向(從小到大)。

假設有壹個數組【a,b,c,d】

冒泡排序依次比較兩個相鄰元素,如果前壹個元素大於後壹個元素,則兩個元素交換位置;否則,立場保持不變。具體步驟:

1,比較兩個元素A和B,如果A》;b,交換位置,數組變成:【b,a,c,d】

2.比較兩個元素A和C,如果A

3.比較兩個元素C和D,如果C》;d,交換位置,數組變成:【b,a,d,c】

第壹輪比較後,我們可以發現最大的數字c已經排在(被取)末尾,然後進行第二輪比較,但第二輪比較不需要比較最後壹個元素,因為最後壹個元素已經是最大的了。

第二輪比較後,第二大號碼也將占據倒數第二的位置。

以此類推,然後第三輪,,

這樣,最大的數字壹直向後排列,最終完成排序。所以我們稱這種排序算法為冒泡排序。

選擇性排序是壹種直觀的算法,每輪將選擇列中最小的值,最小的值將排在第壹位。具體步驟如下:

插入排序步驟大致如下:

快速排序是由Tony Hall開發的壹種排序算法。平均而言,對n個項目進行排序需要進行ο(n log n)次比較。在最壞的情況下,需要進行ο(N2)比較,但這種情況並不常見。事實上,快速排序通常比其他ο(n log n)算法快得多,因為其內部循環可以在大多數架構上有效實現,並且在大多數真實世界的數據中,可以決定設計的選擇,從而減少所需時間的二次項的可能性。

步驟:

從系列中挑選出壹個元素,稱為“pivot”。

對序列重新排序,使所有小於基準值的元素都放在基準的前面,所有大於基準值的元素都放在基準的後面(兩邊可以有相同的數字)。該分區退出後,基準位於系列的中間。這稱為分區操作。

對小於參考值的元素子系列和大於參考值的元素子系列進行遞歸排序。