php插入排序原理,PHP学习之插入排序的实现

本篇文章的主要内容是用PHP实现插入排序,简单却经典的一道算法题,不知你是否记得了,快随小编一起回顾一下吧。

插入排序基本思路:将数组分为两个区(已排序区和未排序区),假定数组的第一个元素处于已排序区, 第一个元素之后的所有元素都处于未排序部分。排序时用到双层循环,外层循环用于从未排序部分中取出待排序元素,并逐步缩小未排序部分,内层循环用于从已排序部分寻找插入位置(即不断地从已排序部分寻找比待排序元素大的元素), 然后将较大的已排序区的元素后移,后移的最终结果是已排序区元素的最后一个元素占据待排序元素原来的位置,而已排序区中间空出一个位置),最后将待排序元素插入元素后移之后留下的空位。//插入排序

function insert_sort($arr) {

//获取数组单元个数

$count = count($arr);

//外层循环用于从未排序区域中取出待排序元素

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

//获取当前需要插入已排序区域的元素值

$temp = $arr[$i];

//内层循环用于从已排序区域寻找待排序元素的插入位置

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

//如果$arr[$i]比已排序区域的$arr[$j]小,就后移$arr[$j]

if ($temp < $arr[$j]) {

$arr[$j 1] = $arr[$j];

$arr[$j] = $temp;

} else {

//如果$arr[$i]不小于$arr[$j],则对已排序区无需再排序

break;

}

}

}

return $arr;

}

$arr = array(6, 19, 26, 62, 88, 99, 18, 16, 1);

var_dump(insert_sort($arr));

测试结果:

c3fc89f78f3b7562548e6ca76ab17c21.png

相关教程:PHP视频教程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值