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代码优化及php相关问题总结
Oct 09 PHP
亲密接触PHP之PHP语法学习笔记1
Dec 17 PHP
批量修改RAR文件注释的php代码
Nov 20 PHP
ThinkPHP的I方法使用详解
Jun 18 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
PHP经典面试题集锦
Mar 19 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
Apr 03 PHP
PHP常用的排序和查找算法
Aug 06 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 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删除非空目录的函数代码小结
2013/02/28 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
jQuery 表格插件整理
2010/04/27 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
JSONP基础知识详解
2017/03/19 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
通过命令行创建vue项目的方法
2017/07/20 Javascript
jquery动态添加带有样式的HTML标签元素方法
2018/02/24 jQuery
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
Python读取表格类型文件代码实例
2020/02/17 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
2020/03/09 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
生产厂厂长岗位职责
2013/12/25 职场文书
小学生美德少年事迹
2014/02/02 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
2016年清明节红领巾广播稿
2015/12/17 职场文书
初中政治教学反思
2016/02/23 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP