php实现插入排序

 更新时间:2015年03月29日 10:00:06   投稿:hebedich  
本文给大家分享的是使用php实现插入排序的方法,十分的简单实用,有需要的小伙伴可以参考下。
<?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)));

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

相关文章

  • Godaddy空间Zend Optimizer升级方法

    Godaddy空间Zend Optimizer升级方法

    虽然购买了godaddy的空间,期间也遇到很多的问题,在慢慢的额摸索中,也有的一些解决的方法。
    2010-05-05
  • PHP工厂模式Factory Pattern的实现及特点

    PHP工厂模式Factory Pattern的实现及特点

    工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字,就可以通过工厂对象的相应工厂函数来制造你需要的对象,工厂模式的最主要作用就是对象创建的封装、简化创建对象操作
    2023-03-03
  • PHP开发框架总结收藏

    PHP开发框架总结收藏

    收集整理了一些主要的PHP开发框架和CMS系统平台,在此一并作个总结,或许以后会有补充。
    2008-04-04
  • 详解WordPress中分类函数wp_list_categories的使用

    详解WordPress中分类函数wp_list_categories的使用

    这篇文章主要介绍了详解WordPress中分类函数wp_list_categories的使用,文中罗列其主要参数的功能和写法,需要的朋友可以参考下
    2016-01-01
  • PHP递归遍历指定目录的文件并统计文件数量的方法

    PHP递归遍历指定目录的文件并统计文件数量的方法

    这篇文章主要介绍了PHP递归遍历指定目录的文件并统计文件数量的方法,涉及php文件及目录操作的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • PHP中PDO关闭连接的方法问题

    PHP中PDO关闭连接的方法问题

    这篇文章主要介绍了PHP中PDO关闭连接的方法问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 浅谈PHP定义命令空间的几个注意点(推荐)

    浅谈PHP定义命令空间的几个注意点(推荐)

    下面小编就为大家带来一篇浅谈PHP定义命令空间的几个注意点(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • php8扩展arginfo生成工具及工具初体验介绍

    php8扩展arginfo生成工具及工具初体验介绍

    这篇文章主要为大家介绍了php8的扩展arginfo生成工具及工具初体验,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • php安全之直接用$获取值而不$_GET 字符转义

    php安全之直接用$获取值而不$_GET 字符转义

    php安全之直接用$获取值而不$_GET 字符转义,需要的朋友可以参考下
    2012-06-06
  • PHP中文URL编解码(urlencode()rawurlencode()

    PHP中文URL编解码(urlencode()rawurlencode()

    PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者把空格编码为 '+',而后者把空格编码为 '%20',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义。
    2010-07-07

最新评论