php实现插入排序

5年以前  |  阅读数:798 次  |  编程语言: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分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例