首頁  >  文章  >  後端開發  >  PHP實作各種排序演算法

PHP實作各種排序演算法

WBOY
WBOY原創
2016-07-25 09:12:38780瀏覽


// 冒泡排序
function BubbleSort($arr) $arr
) {{
// 得到數組總長度 $num = count(
$arr);
// 正向遍歷數組 for ($i = = 1; $i $num; $i++
) {
// 反向遍歷 for ($j = = $num - 1; $j >= $i ; $j--
) {
// 相鄰兩個數字比較 if ($arr[$j] $arr[$j-1]) {
// 暫存較小的數
$iTemp = $arr $arr $arr >$j
-1];
// 把較大的放前面 $arr[$j-1] = $arr[$j];
// 較小的放後面
$arr[$j] ]


$iTemp;
} }
}


return $arr; } // 交換法排序function ExchangeSort($arr){
$arr){$arr){$arr){$arr){
$num =
count( $arr); // 遍歷數組 for ($i = =
0;$i $num - 1; $i++$i++$i++$i++$i++$i++) 🎜>{ // 取得目前索引的下一個索引
for ($j = = $i + 1; $j $num; $j++
) {
// 比較相鄰兩個的值大小 if ($arr[$j] $arr[$i[$i[
$i[$i
[$i[$i[1 {
// 暫存較小的數
$iTemp = $arr $arr $arr >$i]; // 把較大的放前面 $arr[$i] ]

$arr[$j]; // 較小的放後面 $arr[
$j]
]


$iTemp;


} } } return $arr; } // 選擇法排序function SelectSort($arr) $arr
) 🎜>
// 得到數組總長度 $num = count( $arr
);
// 遍歷數組 for ($i = = 0;$i

$num- 1; $i++) {
// 暫存目前值
$iTemp = $arr $arr $arr >$i]; // 暫存目前位置 $iPos = $i
$i $i
> // 遍歷目前位置以後的資料 for ($j = = $i + 1;$j
$num; $j
++) { // 如果有小於目前值的 if ($arr[$j] $iTemp) {
) {
// 暫存最小值 $iTemp = $arr
$arr $arr
$arr >$j]; // 暫存位置
$iPos
=
$j $j
$j; } } // 把目前值放到算好的位置 $arr[$iPos]

$arr[$i]; // 把目前值換成算好的值
$arr[
$i] ]



$iTemp;
} return $arr; } // 插入法排序 function InsertSort($arr){ $num = count( $arr);
// 遍歷數組
for ($i = = 1
;$i
$num; $i++) { // 取得目前值 $iTemp = $arr $arr
$arr >$i];
// 得到目前值的前一個位置 $iPos = $i -
1;
// 如果目前值小於前一個值切未到陣列開始位置 while (($iPos >= > 🎜>0) && ($iTemp $iTemp $iTemp $arr[$iPos
])) ]))
{{{{{{{{{{ // 把前一個的值往後放一位 $arr[$iPos

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn