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中创建并处理图象
Oct 09 PHP
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 PHP
如何使用PHP实现javascript的escape和unescape函数
Jun 29 PHP
PHP常用技术文之文件操作和目录操作总结
Sep 27 PHP
PHP实现PDO的mysql数据库操作类
Dec 12 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
php使用gzip压缩传输js和css文件的方法
Jul 29 PHP
ThinkPHP实现图片上传操作的方法详解
May 08 PHP
Yii2设置默认控制器的两种方法
May 19 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
PHP命名空间简单用法示例
Dec 28 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
通俗易懂的php防注入代码
2010/04/07 PHP
一个JS翻页效果
2007/07/23 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
2017/09/01 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
2019/05/21 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
taro 实现购物车逻辑的实例代码
2020/06/05 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
python动态文本进度条的实例代码
2020/01/22 Python
django跳转页面传参的实现
2020/09/17 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
css3的过滤效果简单实例
2016/08/03 HTML / CSS
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
Pandora德国官网:购买潘多拉手链、戒指、项链和耳环
2020/02/20 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
学生爱国演讲稿
2014/01/14 职场文书
学期自我评价
2014/01/27 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
委托公证书
2014/04/08 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
Golang 实现WebSockets
2022/04/24 Golang