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快速url重写 更新版[需php 5.30以上]
Apr 20 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 PHP
PHP 时间日期操作实战
Aug 26 PHP
php日历制作代码分享
Jan 20 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
php运行时动态创建函数的方法
Mar 16 PHP
PHP实现在线阅读PDF文件的方法
Jun 17 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
如何离线执行php任务
Feb 21 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
PHP分享图片的生成方法
2018/04/25 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
2016/01/14 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
微信小程序自定义底部导航带跳转功能
2018/11/27 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
详解在Python和IPython中使用Docker
2015/04/28 Python
python中base64加密解密方法实例分析
2015/05/16 Python
Python中的zipfile模块使用详解
2015/06/25 Python
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
Python2.6版本pip安装步骤解析
2020/08/17 Python
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
大学生学习生活的自我评价
2013/11/01 职场文书
学前班评语大全
2014/05/04 职场文书
优秀家长自荐材料
2014/08/26 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
上课不认真检讨书
2014/09/17 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
python 网络编程要点总结
2021/06/18 Python
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python