如何用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生成随机密码的三种方法小结
Sep 04 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
php数组一对一替换实现代码
Aug 31 PHP
php pki加密技术(openssl)详解
Jul 01 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
php将远程图片保存到本地服务器的实现代码
Aug 03 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 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实现维护文件代码
2007/06/14 PHP
PHP的拦截器实例分析
2014/11/03 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
javascript模块化简单解析
2016/04/07 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
Python 异常处理实例详解
2014/03/12 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Python中psutil的介绍与用法
2019/05/02 Python
python2和python3实现在图片上加汉字的方法
2019/08/22 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
 Alo Yoga官网:购买瑜伽服装
2018/06/17 全球购物
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
中专毕业自我鉴定
2013/10/16 职场文书
班班通项目实施方案
2014/02/25 职场文书
财务主管岗位职责
2014/02/28 职场文书
百日安全生产活动总结
2014/07/05 职场文书
培训心得体会怎么写
2016/01/25 职场文书
话题作文之财富(600字)
2019/12/03 职场文书