选择排序
function selectSort($arr)
{
for ($i=0;$i < count($arr);$i++)
{
// 寻找[i, n)区间里的最小值
$minIndex=$i;
for ($j=$i+1;$j<count($arr);$j++)
{
if ($arr[$j]<$arr[$minIndex])
$minIndex=$j;
}
//交换两个值的位置
list($arr[$minIndex],$arr[$i])=[$arr[$i],$arr[$minIndex]];
}
return $arr;
}
调用选择排序
function main ()
{
$n=10000;
$rangeL=0;
$rangeR=10000;
//生成数组
$arr=_generateRandomArray(10000,$rangeL,$rangeR);
//调用执行选择排序
$newArr=selectSort($arr);
//打印排序后的数组
_printArray($newArr);
}
生成数组
/**
* @param $n 数组个数
* @param $rangeL 最小值
* @param $rangeR 最大值
* @return mixed
*/
function _generateRandomArray($n, $rangeL, $rangeR)
{
for ($i = 0; $i < $n; $i++)
$arr[$i] = rand() % ($rangeR - $rangeL + 1) + $rangeL;
return $arr;
}
打印输出排序数组
function _printArray($arr)
{
foreach ($arr as $value)
echo $value.' ';
}
网友评论