網絡上常能見到各種C、JAVA語言實現的排序算法,但很少有人會使用PHP實現的排序算法。這主要是因為PHP是一種解釋型語言,而PHP則為我們編寫了相關的排序算法,而不必由程序員手工編寫。不管是時間復雜性還是空間復雜性,我們自己實現的算法并不比原算法更好。
總結使用PHP實現的排序算法。
總之,用PHP實現計算機的排序算法,在旁人看來是一件很愚蠢的事。本筆記主要是幫助PHP程序員入門并了解計算機算法實現的原理,喜歡學習算法的朋友歡迎收藏。
一、冒泡排序算法:
起泡排序的簡單理解是:一組數據,兩個進行比較,將泡泡排在前面,然后將最大的泡泡下沉到底。最后完成資料整理。
PHP源代碼:
functionBubbleSort(array$container){$count=count($container);for($j=1;$j<$j>$i+){for($i=0;$i<$count-$j;$i+){if[$i+]>$container[$i+1];$container[$i+1];$container[$i+1];$container[$i+1];$container[$i+1];$container[$i+1]=$temp;}}}return$container;}
二、快速排序算法:
請從名為“基準”的數列中挑選出一個元素。與基準值相比,所有元素都較小的放置在基準之前,所有元素都比基準值大的放置在基準的后面(相同的數字可以到另一邊)。C中的qsort是一種快速排序方法。
PHP源代碼:
functionQuickSort(array$container){$count=count($container);if($count<=1){return$container;}$pivot=$container[0][0];$left=$right=[];for($i=1;$i=$container[$i]=<$container[$i]<$pivot){$left[]=$right[][]]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$container[$i]=$
三、插入排序算法:
該算法適合對少量數據進行排序,時間復雜度為O^2。一種穩定性分類方法。insert算法將數組分為兩個部分:第一部分包含該數組的所有元素,除了最后一個元素之外(讓數組多一個空間以插入),第二部分只包含該元素(即插入元素)。當第一部分完成排序后,將這個最后的元素插入已排列好順序的第一部分。
PHP源代碼:
functionInsertSort(array$container){$count=count($container);for($i=1;$i<<$count;$i++){$temp=$container[$i];$j=$i-1;//Initwhile($j>=0&$container[$temp){$container[$i]+1];$j--;}if($i!=$j+1)$container[$j+1]=$temp;}return$container;}
四、選擇排序算法:
其工作原理是,每次從待排序的數據元素中選擇最小(或最大)的元素,并將其存放在該序列的開始位置,直到所有要排序的數據元素被排完。
PHP源代碼:
functionSelectSort(array$container){$count=count($container);for($i=0;$i<$i<$i+){$k=$i+){$k=$k=if($j=$i+1;$j!{$temp=$container[$i];$container[$i]=$container[$k];$container[$k]=$temp;}}return$container;}
上一篇: 爆款抓包工具的綜合對比
下一篇: 企業網站優化與企業網站維護怎么做