数组的排序这里我们介绍一些常用的排序方法,排序是一个程序员基本功.doc

数组的排序这里我们介绍一些常用的排序方法,排序是一个程序员基本功.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数组的排序 这里我们介绍一些常用的排序方法, 排序是一个程序员基本功, 所谓排序就是对一组数据,按照某个顺序排列的过程。 排序分两大类: 内部排序 (1) 交换式排序法 冒泡法 基本思想: 案例说明: ?php //简单的 $arr=array(0,5,-1); //这是一个中间变量 $temp=0; //我们要把数组,从小到大 //外层循环 for($i=0;$icount($arr)-1;$i++){ for($j=0;$jcount($arr)-1-$i;$j++){ //说明前面的数比后面的数大,就要交换 if($arr[$j]$arr[$j+1]){ $temp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$temp; } } } //输出 print_r($arr); ? 为了更好使用排序,我们将其封装成一个函数:代码如下 : ?php //简单的 //现在我们把冒泡法封装成函数,利用以后使用 function bubbleSort($myarr){ //这是一个中间变量 $temp=0; //我们要把数组,从小到大 //外层循环 for($i=0;$icount($myarr)-1;$i++){ for($j=0;$jcount($myarr)-1-$i;$j++){ //说明前面的数比后面的数大,就要交换 if($myarr[$j]$myarr[$j+1]){ $temp=$myarr[$j]; $myarr[$j]=$myarr[$j+1]; $myarr[$j+1]=$temp; } } } echo br/函数中的myarr数组; print_r($myarr); } $arr=array(0,5,-1); //使用函数去排序 bubbleSort($arr); //输出 print_r($arr); ? ? 从上面的案例我们可以看出 * 数组默认传递的是值,不是地址 快速排序法 快速排序法,我们就介绍了一个思想: 选择排序法 选择排序法的案例: 举例说明: function selectSort($arr){ $temp=0; for($i=0;$icount($arr)-1;$i++){ //假设 $i就是最小的数 $minVal=$arr[$i]; //记录我认为的最小数的下标 $minIndex=$i; for($j=$i+1;$jcount($arr);$j++){ //说明我们认为的最小值,不是最小 if($minVal$arr[$j]){ $minVal=$arr[$j]; $minIndex=$j; } } //最后交换 $temp=$arr[$i]; $arr[$i]=$arr[$minIndex]; $arr[$minIndex]=$temp; } } 自己分析流程. 插入排序法 排序思想: //插入排序法(小-大) function insertSort($arr){ //先默认下标为0 这个数已经是有序 //1. 知道思想-看懂代码-写(灵活) for($i=1;$icount($arr);$i++){ //$insertVal是准备插入的数 $insertVal=$arr[$i]; //准备先和$insertIndex比较 $insertIndex=$i-1; //如果这个条件满足,说明,我们还没有找到适当的位置 while($insertIndex=0$insertVal$arr[$insertIndex]){ //同时把数后移 $arr[$insertIndex+1]=$arr[$insertIndex]; $insertIndex--; } //插入(这时就给$insertVal找到适当位置) $arr[$insertIndex+1]=$insertVal; } } 从效率上看. 冒泡法 选择排序法 插

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档