PHP插入排序实现代码

 更新时间:2013年04月04日 22:49:30   作者:  
插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。

算法描述:

⒈ 从第一个元素开始,该元素可以认为已经被排序
⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描
⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置
⒋ 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置
⒌ 将新元素插入到下一位置中
⒍ 重复步骤2

复制代码 代码如下:

<?php

    $arr =array(123,0,5,-1,4,15);

    function insertSort(&$arr){

        //先默认第一个下标为0的数是排好的数
        for($i=1;$i<count($arr);$i++){
            //确定插入比较的数
            $insertVal=$arr[$i];
            //确定与前面比较的数比较
            $insertIndex=$i-1;

            //表示没有找到位置
            while($insertIndex>=0 && $insertVal<$arr[$insertIndex]){

                //把数后移
                $arr[$insertIndex+1]=$arr[$insertIndex];
                $insertIndex--;
            }

        //插入(给$insertval找到位置了)
        $arr[$insertIndex+1] = $insertVal;
        }
    }

    insertSort($arr);
    print_r($arr);
?>

相关文章

  • ThinkPHP部署Workerman的成功使用示例

    ThinkPHP部署Workerman的成功使用示例

    本文介绍thinkphp中关于composer集成workerman的方法,并解决了安装过程 中遇到的错误,实现了和woerkman进行握手和通信的demo。用户可以在此基础上按自己的逻辑实现一个聊天系统或者客服系统。
    2023-06-06
  • PHP模板引擎Smarty中变量的使用方法示例

    PHP模板引擎Smarty中变量的使用方法示例

    这篇文章主要介绍了PHP模板引擎Smarty中变量的使用方法,详细讲述了Smarty模板的原理,下载,配置方法与变量的使用技巧,需要的朋友可以参考下
    2016-04-04
  • php 使用curl模拟登录人人(校内)网的简单实例

    php 使用curl模拟登录人人(校内)网的简单实例

    下面小编就为大家带来一篇php 使用curl模拟登录人人(校内)网的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Yii 框架使用数据库(databases)的方法示例

    Yii 框架使用数据库(databases)的方法示例

    这篇文章主要介绍了Yii 框架使用数据库(databases)的方法,结合实例形式分析了Yii 框架使用数据库(databases)的相关配置、创建活动、动作实现技巧,需要的朋友可以参考下
    2020-05-05
  • 基于php 随机数的深入理解

    基于php 随机数的深入理解

    本篇文章是对php随机数进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • CodeIgniter生成静态页的方法

    CodeIgniter生成静态页的方法

    这篇文章主要介绍了CodeIgniter生成静态页的方法,涉及CodeIgniter框架使用文件操作类生成静态文件的实现技巧,需要的朋友可以参考下
    2016-05-05
  • PHP+Mysql+Ajax+JS实现省市区三级联动

    PHP+Mysql+Ajax+JS实现省市区三级联动

    最近做了个项目,需要用到省市区三级联动,上网翻了不少资料,于是有了下面的思路和代码
    2014-05-05
  • php 防止表单重复提交两种实现方法

    php 防止表单重复提交两种实现方法

    这篇文章主要介绍了php 防止表单重复提交两种实现方法的相关资料,这里两种实现方法一一做了详细介绍,需要的朋友可以参考下
    2016-11-11
  • php二分查找二种实现示例

    php二分查找二种实现示例

    这篇文章主要介绍了php二分查找的二种实现示例,递归解法二分查找和非递归算法二分查找的示例,需要的朋友可以参考下
    2014-03-03
  • PHP微信支付开发实例

    PHP微信支付开发实例

    这篇文章主要为大家详细介绍了PHP微信支付开发过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06

最新评论