PHP常用排序演算法

2021-09-18 01:29:46 字數 1907 閱讀 2462

1. 氣泡排序

思路分析:在要排序的一組數中,對當前還未拍好的序列,從前往後對相鄰的兩個數一次進行比較和調整,讓較大的數往下沉,較小的數往上冒。也就是每倆個當相鄰的數比較厚發現他們的排序與排序要求相反時,就將他們互換

**實現:

<?php

function

bubblesort

($arr)}

}return

$arr;}

$arr

=array(5

,3,4

,2,1

,6,3

);$res

=bubblesort

($arr

);

2. 插入排序

思路分析 :在要排序的一組數中,假設前面的數已經是排好順序的,現在要把第n個數插入到前面有序數列中,讓這個n個數也是排好順序的。反覆迴圈,直到完全排好序

<?php

function

insertsort

($arr

)else}}

return

$arr;}

$arr

=array(5

,3,4

,2,1

,6,3

);$res

=insertsort

($arr

);

3.選擇排序

思路分析:再要排序的一組數中,選出最小的乙個數與第乙個位置的數交換,然後在剩下的數中在選個最小的與第二個位置的數交換,一直迴圈到倒數第二個數和最後乙個數比較為止。

<?php

function

selectsort()

}//已經確定最小值位置,儲存到$p中,如果最小位置與當前假設位置$i不同,則位置互換 if(

$p!$=$i)

}return

$arr;}

$arr

=array(5

,3,4

,2,1

,6,3

);$res

=selectsort

($arr

);

4.快速排序

思路分析:選擇乙個基準元素,通常選擇第乙個或者最後乙個元素,通過一趟掃瞄,將待排序列分成兩部分,一部分比基準元素小,一部分大於等於基準元素。此時基準元素再起排好序後的正確位置,然後在用同樣的方法遞迴的排序劃分的兩部分。

**實現:

<?php

function

quicksort

($arr

)//選擇第乙個元素作為基準

$basenum

=$arr[0

];//遍歷出標尺之外的所有元素,按照大小關係放入兩個陣列內

$leftarr

=array()

;$rightarr

=array()

;for($i

=1;$i

<

$len;$i

++)else

}//在分別對左右陣列進行相同處理方式遞迴呼叫,最後合併陣列

$leftarr

=quicksort

($leftarr);

$rightarr

=quicksort

($rightarr);

return

array_merge

($leftarr

,array

($basenum),

$rightarr);

}$arr

=array(5

,3,4

,2,1

,6,3

);$res

=quicksort

($arr

);

php常用排序演算法

header content type text html charset utf 8 arr array 3,5,8,4,9,6,1,7,2 echo implode arr 常用排序演算法 冒泡 function bubblesort arr return arr echo 氣泡排序 echo ...

PHP常用排序演算法 氣泡排序 快速排序 插入排序

氣泡排序 兩兩交換數值,最小的值在最左邊,就如最輕的氣泡在最上邊。對整列數兩兩交換一次,最小的數在最左邊,每次都能得乙個在剩下的數中的最小 的數,冒 出來的數組成乙個有序區間,剩下的值組成一無序區間,且有序區間中每一元素值都比無序區間的小。快速排序 基準數,左右二個陣列,遞迴呼叫,合併。插入排序 排...

php 常用排序

ar array array 10 11 100 100 a array 1 2,2 3 1 array multisort ar 0 sort asc sort string ar 1 sort numeric sort desc var dump ar 本例中在排序後,第乙個陣列將變成 10 1...