博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】插入排序算法是典型的排序算法之前,在笔试过程中会常常遇到,所以在这里做一个学习笔记。
插入排序算法的基本思路如下:
有一个数列长度为 n,则需要排序的次数是 n - 1。每次排序都会设置一个记录数,该记录数与之前的数进行依次比较,进行排序。具体实现如下实例所描述。
实例:[2,5,1,6,3]
第一次排序:记录数是 5,5 > 2,则保持不变:[2,5,1,6,3];
第二次排序:记录数是 1,1 < 5,交换值:[2,1,5,6,3],1 < 2,交换值:[1,2,5,6,3];
第三次排序:记录数是 6,6 > 5,保持不变:[1,2,5,6,3];
第四次排序:记录数是 3,3 < 6,交换值:[1,2,5,3,6],3 < 5 交换值:[1,2,3,5,6]。
则整个排序过程结束。
完整的 PHP 代码实现如下:
// 插入排序算法
function insertSort( $arr )
{
$len = count($arr);
// $i 从数列中的第二个数开始
for($i = 1; $i < $len; $i ++)
{
$tmp = $arr[$i]; // 记录一个值
// 把 $i 之前的数, 从后往前进行比较, 如果大于 $tmp , 就后移该值的位置
for($j = $i - 1; $j >= 0 && $arr[$j] > $tmp ; $j --)
{
$arr[$j+1] = $arr[$j];
}
$arr[$j+1] = $tmp;
}
return $arr;
}
$arr = [2,5,1,6,3];
var_dump(insertSort($arr));
执行结果如下所示:
版权归 马富天PHP博客 所有
本文标题:《使用 PHP 实现插入排序算法》
本文链接地址:http://www.mafutian.net/325.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0
评论审核未开启 |