如何用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 Http_Template_IT类库进行模板替换
Mar 19 PHP
PHP下打开URL地址的几种方法小结
May 16 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
数组与类使用PHP的可变变量名需要的注意的问题
Jun 20 PHP
PHP zip扩展Linux下安装过程分享
May 05 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
PHP return语句的另一个作用
Jul 30 PHP
php接口数据加密、解密、验证签名
Mar 12 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
Dec 31 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
php数据结构之顺序链表与链式线性表示例
Jan 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
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
jQuery通过ajax快速批量提交表单数据
2016/10/25 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
vue使用swiper实现左右滑动切换图片
2020/10/16 Javascript
Python中表示字符串的三种方法
2017/09/06 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
python删除某个字符
2018/03/19 Python
python变量命名的7条建议
2019/07/04 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
python自动化办公操作PPT的实现
2021/02/05 Python
python lambda的使用详解
2021/02/26 Python
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
Solaris操作系统的线程机制
2012/12/23 面试题
就业自荐信
2013/12/04 职场文书
《钱学森》听课反思
2014/03/01 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
2015年暑期见闻
2015/07/14 职场文书
Django如何与Ajax交互
2021/04/29 Python
图文详解matlab原始处理图像几何变换
2021/07/09 Python