php实现插入排序


Posted in PHP onMarch 29, 2015
<?php
/**
 * 插入排序
 * @param Array $a 无序集合
 * @return Array 有序集合
 */
function insertSort($a) {
  $temp;
  $i;
  $j;
  $size_a = count($a);
  # 从第二个元素开始
  for ($i = 1; $i < $size_a; $i++) {      
    if ($a[$i] < $a[$i-1]) {     
      $j = $i; # 保存当前元素的位置
      $temp = $a[$i]; # 当前元素的值  
 
      # 比较左边的元素,如果找到比自己更小的,向右移动元素,否则插入元素到当前位置
      while($j>0 && $temp<$a[$j-1]) {
        $a[$j] = $a[$j-1];
        $j--;
      }
       
      # 插入元素
      $a[$j] = $temp;
    }
  }
  return $a;
}
/**
 * 获取随机数
 * @param Integer $size 数量
 * @return Integer
 */
function randomNumber($size = 10) {
  $rand = array();
  srand(time(NULL));
  for ($i = 0; $i < $size; $i++) {
    array_push($rand, mt_rand(0,1000));   
  }
  return $rand;
}
 
$a = randomNumber();
echo sprintf("Unsorted list %s\n", implode(" ", $a));
echo sprintf("Sorted list %s\n", implode(" ", insertSort($a)));

以上就是本文所述的全部内容了,希望大家能够喜欢。

PHP 相关文章推荐
phpinfo 系统查看参数函数代码
Jun 05 PHP
GBK的页面输出JSON格式的php函数
Feb 16 PHP
PHP调用Twitter的RSS的实现代码
Mar 10 PHP
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
php在数组中查找指定值的方法
Mar 17 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
PHP二维数组去重算法
Dec 17 PHP
PHP解析url并得到url参数方法总结
Oct 11 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 #PHP
WordPress自定义时间显示格式
Mar 27 #PHP
在php和MySql中计算时间差的方法详解
Mar 27 #PHP
PHP连接access数据库
Mar 27 #PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 #PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 #PHP
php简单实现无限分类树形列表的方法
Mar 27 #PHP
You might like
php常用数学函数汇总
2014/11/21 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
PHP实现非阻塞模式的方法分析
2018/07/26 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
13个PHP函数超实用
2015/10/21 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
2015/12/29 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
python实现的简单抽奖系统实例
2015/05/22 Python
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
Python中单例模式总结
2018/02/20 Python
Django 多语言教程的实现(i18n)
2018/07/07 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
婚礼主持结束词
2014/03/13 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
党员活动总结
2015/02/04 职场文书
志愿服务心得体会
2016/01/15 职场文书
导游词之江西赣州
2019/10/15 职场文书
Python数据处理的三个实用技巧分享
2022/04/01 Python