• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP学习之插入排序的实现

php 搞代码 4年前 (2022-01-21) 15次浏览 已收录 0个评论

本篇文章的主要内容是用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[<p style="color:transparent">2本文来源gao!daima.com搞$代!码网</p><span>搞代gaodaima码</span>$i]不小于$arr[$j],则对已排序区无需再排序                break;            }        }    }    return $arr;}$arr = array(6, 19, 26, 62, 88, 99, 18, 16, 1);var_dump(insert_sort($arr));  测试结果:

  

相关教程:PHP视频教程

以上就是PHP学习之插入排序的实现的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP学习之插入排序的实现
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址