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加密解密的代码
Jul 16 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
Nov 07 PHP
php tp验证表单与自动填充函数代码
Feb 22 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
php操作mysqli(示例代码)
Oct 28 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
php版微信公众平台入门教程之开发者认证的方法
Sep 26 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
PHP那些琐碎的知识点(整理)
May 20 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
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP代码优化的53个细节
2014/03/03 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
2015/01/13 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
js格式化时间的方法
2015/12/18 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
2016/07/06 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
微信小程序实现图片上传放大预览删除代码
2020/06/28 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
python实现人工蜂群算法
2020/09/18 Python
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
高中的职业生涯规划书
2013/12/28 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
海上钢琴师观后感
2015/06/03 职场文书
工作年限证明范本
2015/06/15 职场文书