数码控科技猎奇Iphone动漫星座游戏电竞lolcosplay王者荣耀攻略allcnewsBLOGNEWSBLOGASKBLOGBLOGZSK全部技术问答问答技术问答it问答代码软件新闻开发博客电脑/网络手机/数码笔记本电脑互联网操作系统软件硬件编程开发360产品资源分享电脑知识文档中心IT全部全部分类全部分类技术牛文全部分类教程最新网页制作cms教程平面设计媒体动画操作系统网站运营网络安全服务器教程数据库工具网络安全软件教学vbscript正则表达式javascript批处理更多»编程更新教程更新游戏更新allitnewsJava新闻网络医疗信息化安全创业站长电商科技访谈域名会议专栏创业动态融资创投创业学院 / 产品经理创业公司人物访谈营销开发数据库服务器系统虚拟化云计算嵌入式移动开发作业作业1常见软件all电脑网络手机数码生活游戏体育运动明星影音休闲爱好文化艺术社会民生教育科学医疗健康金融管理情感社交地区其他电脑互联网软件硬件编程开发360相关产品手机平板其他电子产品摄影器材360硬件通讯智能设备购物时尚生活常识美容塑身服装服饰出行旅游交通汽车购房置业家居装修美食烹饪单机电脑游戏网页游戏电视游戏桌游棋牌游戏手机游戏小游戏掌机游戏客户端游戏集体游戏其他游戏体育赛事篮球足球其他运动球类运动赛车健身运动运动用品影视娱乐人物音乐动漫摄影摄像收藏宠物幽默搞笑起名花鸟鱼虫茶艺彩票星座占卜书画美术舞蹈小说图书器乐声乐小品相声戏剧戏曲手工艺品历史话题时事政治就业职场军事国防节日风俗法律法规宗教礼仪礼节自然灾害360维权社会人物升学入学人文社科外语资格考试公务员留学出国家庭教育学习方法语文物理生物工程学农业数学化学健康知识心理健康孕育早教内科外科妇产科儿科皮肤科五官科男科整形中医药品传染科其他疾病医院两性肿瘤科创业投资企业管理财务税务银行股票金融理财基金债券保险贸易商务文书国民经济爱情婚姻家庭烦恼北京上海重庆天津黑龙江吉林辽宁河北内蒙古山西陕西宁夏甘肃青海新疆西藏四川贵州云南河南湖北湖南山东江苏浙江安徽江西福建广东广西海南香港澳门台湾海外地区

河北排列7app:PHP快速排序算法实例分析

来源:脚本之家  责任编辑:小易  

河北20选五开奖结果 www.vhmyd.cn 本文实例讲述了PHP快速排序算法。分享给大家供大家参考,具体如下:

快速排序:在无序的数组$data中,选择任意一个值作为对比值,定义i为头部检索索引,j为尾部检索索引,

算法步骤:

(1)初始化对比值$value=$data[0],$i=1,$j=count($data)-1

(2)首先从尾部开始检索,判断$data[$j]是否小于$value,若不小于则$j--,继续检索,直到找到比$value小的坐标

(3)这时开始头部检索,判断$data[$i]是否大于$value,若不大于则$i++,继续检索,直到找到比$value大的坐标

(4)这时$data[$j]$data[$i]的值相互交换,即把比$value大的放到右边,把比$value小的放到左边

(5)重复3、4直到$i==$j

(6)这时已经把比$value大的放到右边,把比$value小的放到左边,确定了中间的坐标位置为$i,中间值为$value,把$data[$i]的值与$data[0]的值交换,因为中间值为$value,需要把$value挪到数组的中间坐标

(7)数组分成左右2个无序的数组,再分别递归执行1-6,直到数组长度为1

Tips:快速排序的中文定义百度下会更清楚

代码:

<?php
header("Content-type: text/html; charset=utf-8");
function quickSort($data, $startIndex, $endIndex){
 if($startIndex < $endIndex){
  $value = $data[$startIndex]; // 对比值
  $startT = $startIndex + 1;
  $endT = $endIndex;
  while ($startT != $endT) {
   // 找到比对比值小的坐标
   while ($data[$endT] > $value && $endT > $startT){
    $endT--;
   }
   // 找到比对比值大的左边
   while ($data[$startT] < $value && $startT < $endT){
    $startT++;
   }
   if($endT > $startT){
    $temp =$data[$startT];
    $data[$startT] = $data[$endT];
    $data[$endT] = $temp;
   }
  }
  // 防止数组已经排序好的情况
  if($data[$startT] < $value){
   $data[$startIndex] = $data[$startT];
   $data[$startT] = $value;
  }
  $data = quickSort($data, $startIndex, $startT - 1);
  $data = quickSort($data, $startT + 1, $endIndex);
  return $data;
 }else{
  return $data;
 }
}
$data = array(10, 5, 30, 22, 1, 42, 14, 34, 8, 13, 28, 36, 7);
$data = quickSort($data, 0, count($data) - 1);
var_dump($data);

运行结果:

array(13) {
  [0]=>
  int(1)
  [1]=>
  int(5)
  [2]=>
  int(7)
  [3]=>
  int(8)
  [4]=>
  int(10)
  [5]=>
  int(13)
  [6]=>
  int(14)
  [7]=>
  int(22)
  [8]=>
  int(28)
  [9]=>
  int(30)
  [10]=>
  int(34)
  [11]=>
  int(36)
  [12]=>
  int(42)
}

PS:这里再为大家推荐一款关于排序的演示工具供大家参考:

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具:
//tools.jb51.net/aideddesign/paixu_ys

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php排序算法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:


  • 本文相关:
  • php 快速排序算法详解
  • php排序算法(冒泡排序,快速排序)
  • php数据结构与算法(php描述) 快速排序 quick sort
  • php常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
  • php四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
  • php排序算法之快速排序(quick sort)及其优化算法详解
  • php 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
  • php实现的常见排序算法汇总
  • php实现的多维数组排序算法分析
  • php实现桶排序算法
  • php排序算法之归并排序(merging sort)实例详解
  • php 服务器配置(使用apache及iis两种方法)
  • php简单统计中文个数的方法
  • 优化php程序的方法小结
  • php array_merge函数使用需要注意的一个问题
  • php实现基于图的深度优先遍历输出1,2,3...n的全排列功能
  • php获得用户ip地址的比较不错的方法
  • 一个基于pdo的数据库操作类
  • 基于php实现的验证码小程序
  • php使用cookie实现和用户会话的方法
  • php 使用openssl 扩展实现公钥加密的方法
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 河北20选五开奖结果 - 频道导航
    Copyright © 2017 河北20选五开奖结果 www.vhmyd.cn All Rights Reserved
  • 京东和他的“朋友圈” 2018-12-15
  • 新华国际时评:中国两会向世界传递三大信号 2018-12-15
  • 回复@看着就想笑:同时,市场不具有配置全局性长期性战略性资源的功能。 2018-12-15
  • 共产主义社会,马克思主义对未来的科学预测。对于共产党人来说,是自己的信仰,对于相信这种科学预测者来说,是一种价值追求。至于未来的共产主义实行什么样的分配方式,马 2018-12-14
  • “网络党课”第二课 杨禹《为美好生活而奋斗》 2018-12-14
  • DJ音乐绽放江西之巅 萍乡武功山帐篷节成功举办 2018-12-14
  • 巫山县大峡村:深度贫困村的脱贫之变 2018-12-13
  • 【上海天气】最新上海今天天气,实时提供上海气温、空气质量、24小时天气预报、生活指数查询 2018-12-13
  • VRAR从热转凉 追风上市公司“跌落神坛”追风上市公司“跌落神坛”-手机行情 2018-12-13
  • 招聘启事丨西部网诚聘新媒体编辑记者、实习编辑等人员 2018-12-12
  • 开奖时刻 5箱可乐免费送出 今日活动持续进行开奖时刻-等级 2018-12-12
  • 阜阳五中成功举办第四届社团文化艺术节文艺汇演 2018-12-12
  • 和谐号动车将开放企业冠名 沪铁路485个车次开始招商 2018-12-11
  • 好战的北约应该负责打扫战场,包括难民安置、战后重建…… 2018-12-10
  • 很容易让人联想到是这个女人的错,而杨杨忽视其背后有很复杂的原因。 2018-12-10
  • 291| 175| 113| 313| 396| 446| 604| 317| 962| 412|