PHP插入排序实现代码


Posted in PHP onApril 04, 2013

算法描述:

⒈ 从第一个元素开始,该元素可以认为已经被排序
⒉ 取出下一个元素,在已经排序的元素序列中从后向前扫描
⒊ 如果该元素(已排序)大于新元素,将该元素移到下一位置
⒋ 重复步骤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);
?>
PHP 相关文章推荐
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
WordPress中的shortcode短代码功能使用详解
May 17 PHP
CI框架实现cookie登陆的方法详解
May 18 PHP
php版微信公众平台实现预约提交后发送email的方法
Sep 26 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
PHP错误处理函数register_shutdown_function使用示例
Jul 03 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
PHP chr()函数讲解
Feb 11 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 #PHP
PHP常用的文件操作函数经典收藏
Apr 02 #PHP
精美漂亮的php分页类代码
Apr 02 #PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 #PHP
php页面跳转代码 输入网址跳转到你定义的页面
Mar 28 #PHP
PHP 数组和字符串互相转换实现方法
Mar 26 #PHP
php中将html中的br换行符转换为文本输入中的换行符
Mar 26 #PHP
You might like
第十一节--重载
2006/11/16 PHP
php 获取完整url地址
2008/12/20 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
PHP+ajax实现二级联动菜单功能示例
2018/08/10 PHP
javascript编程起步(第七课)
2007/01/10 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
基于JavaScript实现快速转换文本语言(繁体中文和简体中文)
2016/03/07 Javascript
javascript实现的猜数小游戏完整实例代码
2016/05/10 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
js中的闭包学习心得
2018/02/06 Javascript
vue实现微信分享功能
2018/11/28 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Python端口扫描简单程序
2016/11/10 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
python使用代理ip访问网站的实例
2018/05/07 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
应届大学生的推荐信
2013/11/20 职场文书
英文求职信写作小建议
2014/02/16 职场文书
《画风》教学反思
2014/04/16 职场文书
2014年学校工作总结
2014/11/20 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
导游词之井冈山
2019/11/20 职场文书