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 xml文件操作代码(一)
Mar 20 PHP
php面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
php短域名转换为实际域名函数
Jan 17 PHP
非常精妙的PHP递归调用与静态变量使用
Dec 16 PHP
基于PHP magic_quotes_gpc的使用方法详解
Jun 24 PHP
php跨域cookie共享使用方法
Feb 20 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
浅析php创建者模式
Nov 25 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
php单例模式的简单实现方法
Jun 10 PHP
PHP实现根据密码长度显示安全条
Jul 04 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简单命令代码集锦
2007/09/24 PHP
ThinkPHP3.1新特性之对分组支持的改进与完善概述
2014/06/19 PHP
ie 调试javascript的工具
2009/04/29 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python 列表(List)操作方法详解
2014/03/11 Python
python中redis的安装和使用
2016/12/04 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
python3字符串操作总结
2019/07/24 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
Python self用法详解
2020/11/28 Python
python switch 实现多分支选择功能
2020/12/21 Python
全网最细 Python 格式化输出用法讲解(推荐)
2021/01/18 Python
CSS3圆角和渐变2种常用功能详解
2016/01/06 HTML / CSS
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
企业管理毕业生求职信
2014/03/11 职场文书
有创意的广告词
2014/03/18 职场文书
市场营销毕业生自荐信范文
2014/04/01 职场文书
高中生打架检讨书1000字
2015/02/17 职场文书
基于Python实现射击小游戏的制作
2022/04/06 Python
V Rising 服务器搭建图文教程
2022/06/16 Servers
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android