如何用PHP实现插入排序?


Posted in PHP onApril 10, 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 18 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
php xml 入门学习资料
Jan 01 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
Php无限级栏目分类读取的实现代码
Feb 19 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
May 25 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
php的socket编程详解
Nov 20 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
Jan 13 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
php解决crontab定时任务不能写入文件问题的方法分析
Sep 16 PHP
laravel 自定义常量的两种方案
Oct 14 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 #PHP
克隆一个新项目的快捷方式
Apr 10 #PHP
str_replace只替换一次字符串的方法
Apr 09 #PHP
apache和php之间协同工作的配置经验分享
Apr 08 #PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
Apr 08 #PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
Apr 08 #PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 #PHP
You might like
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
iframe调用父页面函数示例详解
2014/07/17 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Python subprocess库的使用详解
2018/10/26 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
PyQt5-QDateEdit的简单使用操作
2020/07/12 Python
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
党校培训思想汇报
2013/12/30 职场文书
反对邪教标语
2014/06/30 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
教师见习总结范文
2015/06/23 职场文书
狂人日记读书笔记
2015/06/30 职场文书
运动会新闻报道稿
2015/07/22 职场文书
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers