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 相关文章推荐
从零开始 教你如何搭建Discuz!4.1论坛
Jul 07 PHP
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
PHP中redis的用法深入解析
Feb 20 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
ThinkPHP分组下自定义标签库实例
Nov 01 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
Jan 22 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
Jul 06 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
PHP的自定义模板引擎
Mar 24 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
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
DOM精简教程
2006/10/03 Javascript
[原创]js获取数组任意个不重复的随机数组元素
2010/03/15 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
javascript实现下拉提示选择框
2015/12/29 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
2016/01/19 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
Python 使用with上下文实现计时功能
2018/03/09 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
bluepy 一款python封装的BLE利器简单介绍
2019/06/25 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
浅析pandas随机排列与随机抽样
2021/01/22 Python
印度在线杂货店:bigbasket
2018/08/23 全球购物
Prototype如何更新局部页面
2013/03/03 面试题
自我鉴定书面格式
2014/01/13 职场文书
车辆工程专业求职信
2014/06/14 职场文书
承诺书样本
2014/08/30 职场文书
2014个人年度工作总结
2014/12/15 职场文书
2015年银行信贷员工作总结
2015/05/19 职场文书
培训讲师开场白
2015/06/01 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS
详解python的异常捕获
2022/03/03 Python