php实现插入排序

yipeiwu_com5年前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 strcmp使用说明

以区分大小写的方式比较两个字符串 Strcmp()函数对两个字符串进行二进制安全的比较,并区分大小写。其形式为: int strcmp ( string str1 , string st...

PHP转换IP地址到真实地址的方法详解

想要把IPv4地址转为真实的地址,肯定要参考IP数据库,商业的IP数据库存储在关系型数据库中,查询和使用都非常方便,但是成本不是个人和小公 司愿意承受的,所以简单应用的思路就是利用一些免...

PHP编程获取图片的主色调的方法【基于Imagick扩展】

本文实例讲述了PHP编程获取图片的主色调的方法。分享给大家供大家参考,具体如下: 代码中用到了php的图片扩展,所以使用之前,需要先安装PHP的Imagick扩展,具体安装如下(wind...

PHP实现将汉字转换为拼音及获取词语首字母的方法

本文实例讲述了PHP实现将汉字转换为拼音及获取词语首字母的方法。分享给大家供大家参考,具体如下: 最近要开发将汉字转换为拼音和得到首字的功能记录下来哈子:呵呵~ class Piny...

php 一元分词算法

复制代码 代码如下:/** * 一元分词算法 * UTF8编码下一个字符如果首字符ASCII码不大于192则只占1个字节 * 如果首字符ASCII码大于192小于224则占用2个字节,否...