从数组头0开始遍历,找到最小的那个value后,将他和0位置交换值,然后从第1个开始遍历,找到除0个外,下一个最小的值,将他和第1个位置交换以此类推。
<?php
class SelectSort
{
public function sort(Array $arr)
{
$n = count($arr);
for($i = 0; $i < $n; $i++)
{
$min = $i;
for($j = $i+1; $j < $n; $j++)
{
if($arr[$min] > $arr[$j])
{
$min = $j;
}
}
$temp = $arr[$min];
$arr[$min] = $arr[$i];
$arr[$i] = $temp;
print_r($arr);
}
return $arr;
}
}
$selectSort = new SelectSort();
$params = array(1,3,7,5,2);
$result = $selectSort->sort($params);
print_r($result);
不稳定排序
时间复杂度O(n²)