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.ini中文版
Oct 09 PHP
PHP MSSQL 存储过程的方法
Dec 24 PHP
php获取淘宝分类id示例
Jan 16 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
May 29 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
PHP连接access数据库
Mar 27 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
May 12 PHP
学习php设计模式 php实现模板方法模式
Dec 08 PHP
Yii2框架使用计划任务的方法
May 25 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
Dec 08 PHP
PHP sdk实现在线打包代码示例
Dec 09 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/10/09 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
javascript 面向对象编程基础 多态
2009/08/21 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
Vue动态控制input的disabled属性的方法
2018/06/26 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
python缩进区别分析
2014/02/15 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
python爬虫请求头设置代码
2020/07/28 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
北美最大的手工艺品零售商之一:Michaels Stores
2019/02/27 全球购物
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
省优秀教师事迹材料
2014/01/30 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
个人委托书格式
2014/04/04 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python