如何用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验证码(支持中文)
Feb 14 PHP
PHP大批量数据操作时临时调整内存与执行时间的方法
Apr 20 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
php array_key_exists() 与 isset() 的区别
Oct 24 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 PHP
PHP设计模式之单例模式原理与实现方法分析
Apr 25 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
PHP FileSystem 文件系统常用api整理总结
Jul 12 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 PHP
php访问对象中的成员的实例方法
Nov 17 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 cron中的批处理
2008/09/16 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
拖动一个HTML元素
2006/12/22 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
Python continue语句用法实例
2014/03/11 Python
不要用强制方法杀掉python线程
2017/02/26 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Django 限制访问频率的思路详解
2019/12/24 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
2013/02/07 HTML / CSS
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
道德演讲稿
2014/05/21 职场文书
中学生运动会口号
2014/06/07 职场文书
市场营销毕业求职信
2014/08/07 职场文书
八年级英语教学计划
2015/01/23 职场文书
2015年师德表现自我评价
2015/03/05 职场文书
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL