php实现插入排序


Posted in PHP onMarch 29, 2015
<?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 MVC模式在网站架构中的实现分析
Mar 04 PHP
PHP高级对象构建 工厂模式的使用
Feb 05 PHP
那些年一起学习的PHP(二)
Mar 21 PHP
PHP中使用mktime获取时间戳的一个黑色幽默分析
May 31 PHP
使用php计算排列组合的方法
Nov 13 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
Laravel 5框架学习之Blade 简介
Apr 08 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
PHP获取文件扩展名的4种方法
Nov 24 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 #PHP
WordPress自定义时间显示格式
Mar 27 #PHP
在php和MySql中计算时间差的方法详解
Mar 27 #PHP
PHP连接access数据库
Mar 27 #PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 #PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 #PHP
php简单实现无限分类树形列表的方法
Mar 27 #PHP
You might like
为php4加入动态flash文件的生成的支持
2006/10/09 PHP
PHP5 安装方法
2007/01/15 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
jQuery+css实现炫目的动态块漂移效果
2016/01/28 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
python实现简单购物商城
2016/05/21 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
Python实现的建造者模式示例
2018/08/06 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
kafka-python 获取topic lag值方式
2019/12/23 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
工商管理专业自荐信
2014/06/03 职场文书
房屋所有权证明
2014/10/20 职场文书
求职简历自我评价2015
2015/03/10 职场文书
python requests模块的使用示例
2021/04/07 Python
浅谈Java父子类加载顺序
2021/08/04 Java/Android
Go语言测试库testify使用学习
2022/07/23 Golang