如何用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 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
php模块memcache和memcached区别分析
Jun 14 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
Aug 07 PHP
PHP常用正则表达式集锦
Aug 17 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
开启PHP的伪静态模式
Dec 31 PHP
PHP使用mongoclient简单操作mongodb数据库示例
Feb 08 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 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产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
php生成图片验证码的方法
2016/04/15 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
js实现幻灯片效果(基于jquery插件)
2013/11/05 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
css3中transition属性详解
2014/09/02 HTML / CSS
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
苹果中国官方网站:Apple中国
2016/07/22 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
高一新生军训感言
2014/03/02 职场文书
网站推广策划方案
2014/06/04 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
交通事故和解协议书
2015/01/27 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
建房合同协议书
2016/03/21 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
如何理解python接口自动化之logging日志模块
2021/06/15 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python