如何用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 相关文章推荐
Smarty+QUICKFORM小小演示
Feb 25 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
PHP中static关键字原理的学习研究分析
Jul 18 PHP
PHP代码优化的53个细节
Mar 03 PHP
php 判断网页是否是utf8编码的方法
Jun 06 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
php两种无限分类方法实例
Apr 21 PHP
PHP实现的曲线统计图表示例
Nov 10 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 PHP
PHP 超级全局变量相关总结
Jun 30 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 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抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
js函数获取html中className所在的内容并去除标签
2013/09/08 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
浅析JS运动
2015/12/28 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
r.js来合并压缩css文件的示例
2018/04/26 Javascript
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
Python抽象类的新写法
2015/06/18 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
python aiohttp的使用详解
2019/06/20 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
护士毕业生自我鉴定
2014/02/08 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python