php实现插入排序

Original 2017-02-06 13:36:46 252
abstract:<?php /**  * 插入排序  * @param Array $a 无序集合  * @return Array 有序集合  */ function INSERTSort($a) {   $temp;   $i
<?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中文网(m.sbmmt.com)其他文章!

Release Notes

Popular Entries