教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP学习之插入排序的实现

PHP学习之插入排序的实现

发布时间:2020-12-24   编辑:jiaochengji.com
教程集为您提供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));
  测试结果:

  

相关教程:PHP视频教程

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

  • 本文转载于:博客园,如有侵犯,请联系jquerycn@qq.com删除
  • 您可能感兴趣的文章:
    PHP学习之插入排序的实现
    php插入排序的实现代码
    php 插入排序程序代码
    php实用快速排序算法的实例代码
    php数组排序方法大全(脚本学堂整理奉献)
    php数组随机排序示例
    php 冒泡排序的实现代码
    php 实现冒泡排序的简单例子
    php选择排序算法实现代码
    php冒泡排序算法实现代码

    [关闭]
    ~ ~