如何用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
Dec 23 PHP
PHP 数组遍历顺序理解
Sep 09 PHP
解析coreseek for sphinx的使用
Jun 21 PHP
php中mail函数发送邮件失败的解决方法
Dec 24 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 PHP
PHP之预定义接口详解
Jul 29 PHP
php实现每日签到功能
Nov 29 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
Jan 17 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 PHP
PHP Swoole异步Redis客户端实现方法示例
Oct 24 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
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
php设计模式之单例模式代码
2016/06/11 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
ie focus bug 解决方法
2009/09/03 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
2013/04/02 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
基于bootstrap实现多个下拉框同时搜索功能
2017/07/19 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
浅析使用Python操作文件
2017/07/31 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
名人演讲稿范文
2013/12/28 职场文书
员工2014年度工作总结
2014/12/09 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
升学宴家长致辞
2015/07/27 职场文书
银行求职信范文
2019/05/13 职场文书
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
MySQL多表查询机制
2022/03/17 MySQL