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 相关文章推荐
PHP学习散记_编码(json_encode 中文不显示)
Nov 10 PHP
php重定向的三种方法分享
Feb 22 PHP
PHP的PSR规范中文版
Sep 28 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php中smarty区域循环的方法
Jun 11 PHP
百度地图API使用方法详解
Aug 25 PHP
如何使用PHP对网站验证码进行破解
Sep 17 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
php实现统计目录文件大小的函数
Dec 25 PHP
PHP在线打包下载功能示例
Oct 15 PHP
微信自定义分享php代码分析
Nov 24 PHP
PHP多种序列化/反序列化的方法详解
Jun 23 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
图形数字验证代码
2006/10/09 PHP
如何去掉文章里的 html 语法
2006/10/09 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
php笔记之:AOP的应用
2013/04/24 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
php加密解密字符串示例
2016/10/13 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
PHP new static 和 new self详解
2017/02/19 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
Vue动态获取width的方法
2018/08/22 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
Html5获取高德地图定位天气的方法
2019/12/26 HTML / CSS
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
外贸业务员岗位职责
2013/11/24 职场文书
迟到检讨书900字
2014/01/14 职场文书
大学生简短的自我评价分享
2014/02/20 职场文书
实验室标语
2014/06/21 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
保管员岗位职责
2015/02/14 职场文书
2019感恩宣传标语!
2019/07/05 职场文书