如何用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实现链结人气统计
Oct 09 PHP
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 PHP
html静态页面调用php文件的方法
Nov 13 PHP
php递归json类实例
Dec 02 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
yii,CI,yaf框架+smarty模板使用方法
Dec 29 PHP
PHP读取大文件末尾N行的高效方法推荐
Jun 03 PHP
PHP合并数组函数array_merge用法分析
Feb 17 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 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+mysql保存和输出文件
2006/10/09 PHP
用PHP+MySql编写聊天室
2006/10/09 PHP
PHP 读取和修改大文件的某行内容的代码
2009/10/30 PHP
php简单提示框alert封装函数
2010/08/08 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
Symfony查询方法实例小结
2017/06/28 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
js导航菜单(自写)简单大方
2013/03/28 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
python实现计算器功能
2019/10/31 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
经济学人订阅:The Economist
2018/07/19 全球购物
商家认证委托书格式
2014/10/16 职场文书
汽车转让协议书范本
2014/12/07 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
会计人员岗位职责
2015/02/03 职场文书
大学生实习证明
2015/06/16 职场文书
天气温馨提示语
2015/07/14 职场文书
校长新学期致辞
2015/07/30 职场文书
七年级英语教学反思
2016/02/15 职场文书