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
PHP $_SERVER详解
Jan 16 PHP
深入理解PHP之require/include顺序 推荐
Jan 02 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
php导出word格式数据的代码实例
Nov 25 PHP
php数组中包含中文的排序方法
Jun 03 PHP
php中数字0和空值的区别分析
Jun 05 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
Dec 15 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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
数据库相关问题
2006/10/09 PHP
PHP排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
node网页分段渲染详解
2016/09/05 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
关于vue面试题汇总
2018/03/20 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
python的pstuil模块使用方法总结
2019/07/26 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
python各层级目录下import方法代码实例
2020/01/20 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
python 实现性别识别
2020/11/21 Python
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
高校毕业生自我鉴定
2013/10/27 职场文书
化工机械应届生求职信
2013/11/04 职场文书
打架检讨书300字
2014/02/02 职场文书
淘宝好评语大全
2014/05/05 职场文书
大学班级文化建设方案
2014/05/06 职场文书
艾滋病宣传标语
2014/06/25 职场文书
企业年检委托书范本
2014/10/14 职场文书
圣诞晚会主持词
2015/07/01 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书