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循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
Jun 03 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
php使用cookie保存用户登录的用户名实例
Jan 26 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
学习php设计模式 php实现适配器模式
Dec 07 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
php使用parse_str实现查询字符串解析到变量中的方法
Feb 17 PHP
Laravel框架实现redis集群的方法分析
Sep 14 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
laravel 验证错误信息到 blade模板的方法
Sep 29 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 木马攻击防御技巧
2009/06/13 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
JQuery实现动态添加删除评论的方法
2015/05/18 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
常用的js方法合集
2017/03/10 Javascript
Vue渲染函数详解
2017/09/15 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
python实现文件分组复制到不同目录的例子
2014/06/04 Python
Python实现的简单发送邮件脚本分享
2014/11/07 Python
python开发之for循环操作实例详解
2015/11/12 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
python实现闹钟定时播放音乐功能
2018/01/25 Python
Django中使用Celery的方法示例
2018/11/29 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
校园网站的创业计划书范文
2013/12/30 职场文书
村干部承诺书
2014/03/28 职场文书
人事经理岗位职责
2014/04/28 职场文书
Python 如何实现文件自动去重
2021/06/02 Python
MySQL 原理与优化之Update 优化
2022/08/14 MySQL