<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>選擇排序</title>
</head>
<body>
<!-- 假設第一個元素爲最大值max,其下標爲max_index, 通過循環找出每一行的最大值,
和當前行的最後一個未排序的數組元素進行位置交接,
重複如上步驟。排序的結果爲從小到大. -->
<?php
$arr=array(10,30,20,50,40);
$n=count($arr);
//外層循環
for ($i=0; $i < $n-1; $i++) {
$max=$arr[0];
$max_index=0;
//內層循環查找沒有排序的最大值和 其下標
for ($j=0; $j < $n-$i; $j++) {
if ($arr[$j]>$max) {
$max=$arr[$j];
$max_index=$j;
}
}
//沒有排序的最後一個索引爲
$last_index=$n-$i-1;
//將最大值和 沒有排序的值交換位置
$tmp=$arr[$max_index];
$arr[$max_index]=$arr[$last_index];
$arr[$last_index]=$tmp;
}
echo "<pre>";
print_r($arr);
echo "</pre>";
echo "<hr/>";
?>
<!-- 總結:選擇排序 兩層循環 內層循環找最大值 外層循環
將找到的最大值$arr[$max_index]和未排序的最後一個$arr[$last_index] 進行位置交換,
未排序的最後一個 $last_index=$n(數組長度)-$i(第幾次循環)-1; -->
</body>
</html>
PHP 選擇排序 案例
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.