选择排序和插入排序

来源:互联网 发布:java md5盐值加密解密 编辑:程序博客网 时间:2024/05/21 17:11

选择排序的原理:选择排序就是从数组中取一个数作为最小值,然后与剩下的数依次比较,如果有比他更小的数,记下这个数的下标,等依次比较完一轮后,将比他小的数放在第一位,再依次去进行比较。


插入排序的 原理:首先就是一个已经有序的数组,将你要插入的数依次与数组里的数进行比较,找到相应的位置进行插入。

插入排序核心:假设第一个元素排好,之后的元素对排好的部分从后向前比较并逐一移动。


代码如下:

public function SelectSort($arr)
{


$count = count($arr);


for ($i=0;$i<$count-1;$i++)  {
//假设$i是当前最小值的位置
$min = $i;


for ($j=$i+1;$j<$count;$j++)  {


if ($arr[$min]>$arr[$j])  {


$min = $j;
}
}
if($min != $i)  {
list($arr[$min],$arr[$i]) = [$arr[$i],$arr[$min]];
}
}


return $arr;
}
/*插入排序*/
public function InsertSort($arr)
{


$count = count($arr);


for ($i=1;$i<$count;$i++)  {


for ($j=$i-1;$j>=0;$j--)  {


if($arr[$j]>$arr[$j+1])  {


list($arr[$j],$arr[$j+1]) = [$arr[$j+1],$arr[$j]];
}else{


break;
}
}
}


return $arr;
}


上述的$arr是从另外一个页面传过来的形参,$arr就是你自己的一个数组(可以自己设计)。


原创粉丝点击