<!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 选择排序 案例
最新推荐文章于 2024-04-03 02:45:00 发布