php实现插入排序

yipeiwu_com6年前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)));

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

相关文章

PHP使用递归方式列出当前目录下所有文件的方法

本文实例讲述了PHP使用递归方式列出当前目录下所有文件的方法。分享给大家供大家参考。具体实现方法如下: <?phpfunction filelist($pathname...

php析构函数的简单使用说明

php析构函数的简单使用说明

  随着面向对象编程的普遍展开,面向对象展现了其中很多有趣的问题。相信很多初学者学习php面向对象时会接触两个函数,构造函数与析构函数。构造函数似乎用的更多,析构函数用的较少(相对初学者...

set_include_path和get_include_path使用及注意事项

set_include_path 设置默认包含路径 在include或require文件的时候,先在默认包含路径里面找,然后在同目录下找 例: D:/xampp/htdocs/test/...

访问编码后的中文URL返回404错误的解决方法

访问编码后的中文URL返回404错误的解决方法

昨天做一个项目,其中有一个需求是每一张图片对应一小段文字对图片的说明,普通的做法是新建一个表然后把图片名与说明文字都记录到数据库内。仔细考虑后感觉这个应用不要数据库也能完成,我实现的方案...

Ajax+PHP实现的模拟进度条功能示例

Ajax+PHP实现的模拟进度条功能示例

本文实例讲述了Ajax+PHP实现的模拟进度条功能。分享给大家供大家参考,具体如下: 一 代码 fun.js: function progress(){ setInterval(...