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版(1)
Oct 09 PHP
谈谈新手如何学习PHP 默默经典版本
Aug 04 PHP
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
Jun 21 PHP
简单的php写入数据库类代码分享
Jul 26 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
php中header设置常见文件类型的content-type
Jun 23 PHP
php实现短信发送代码
Jul 05 PHP
PHP内核探索之解释器的执行过程
Dec 22 PHP
win10环境PHP 7 安装配置【教程】
May 09 PHP
PHP的自定义模板引擎
Mar 24 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 PHP
关于PHP中interface的用处详解
Jul 26 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
PHP中路径问题的解决方案
2006/10/09 PHP
PHP 多维数组排序(usort,uasort)
2010/06/30 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
2016/03/02 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
vue中axios实现数据交互与跨域问题
2019/05/12 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
Python实现网站文件的全备份和差异备份
2014/11/30 Python
tensorflow识别自己手写数字
2018/03/14 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
Saucony澳大利亚官网:美国跑鞋品牌,运动鞋中的劳斯莱斯
2018/05/05 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
抽象类和接口的区别
2012/09/19 面试题
人事档案接收函
2014/01/12 职场文书
办理护照介绍信
2014/01/16 职场文书
音乐幼师求职信
2014/07/09 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
2014年银行客户经理工作总结
2014/11/12 职场文书
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS