如何用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利用REFERER根居访问来地址进行页面跳转
Sep 28 PHP
php中将一段数据存到一个txt文件中并显示其内容
Aug 15 PHP
五款PHP代码重构工具推荐
Oct 14 PHP
php检查是否是ajax请求的方法
Apr 16 PHP
php使用curl打开https网站的方法
Jun 17 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
Jul 28 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
WordPress迁移时一些常见问题的解决方法整理
Nov 24 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
php实现多站点共用session实现单点登录的方法详解
Sep 18 PHP
TP5框架安全机制实例分析
Apr 05 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的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
php给数组赋值的实例方法
2019/09/26 PHP
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
Bootstrap组件(一)之菜单
2016/05/11 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
Vue触发隐藏input file的方法实例详解
2019/08/14 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
Python中的字符串查找操作方法总结
2016/06/27 Python
python3 爬取图片的实例代码
2018/11/06 Python
python版飞机大战代码分享
2018/11/20 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
GWT的应用有哪两种部署模式
2012/12/21 面试题
Ajax的优点和缺点
2014/11/21 面试题
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
关于礼仪的演讲稿
2014/01/04 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
求职自我评价怎么写
2015/03/09 职场文书
质检员岗位职责范本
2015/04/07 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
Python进程池与进程锁之语法学习
2022/04/11 Python
Ruby处理CSV数据方法详解
2022/04/18 Ruby
Python绘制散乱的点构成的图的方法
2022/04/21 Python