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)
Jun 21 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
PHP的引用详解
Feb 22 PHP
php eval函数一句话木马代码
May 21 PHP
php生成curl命令行的方法
Dec 14 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
Mar 22 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
php二维数组按某个键值排序的实例讲解
Feb 15 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
针对初学PHP者的疑难问答(2)
2006/10/09 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
详解JS函数防抖
2020/06/05 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
python对日志进行处理的实例代码
2018/10/06 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
搬家公司的创业计划书
2014/01/01 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
企业金融服务方案
2014/06/03 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
2015年教师见习期工作总结
2015/05/20 职场文书
感谢师恩主题班会
2015/08/17 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
A22国内电台短波广播频率表
2022/05/10 无线电