PHP语言的几种排序算法和二分查找.docxVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP语言的几种排序算法和二分查找

直接选择排序算法function selectSort($arr){ for($i=0;$icount($arr)-1;$i++){ $k=$i; for($j=$i+1;$jcount($arr);$j++){ if($arr[$k]$arr[$j]) $k=$j; } if($i!=$k){ $temp=$arr[$i]; $arr[$i]=$arr[$k]; $arr[$k]=$temp; } } return $arr;}$arr1=array(4,5,2,8,1);print_r(selectSort($arr1));冒泡排序算法$arr1 = array(5,4,3,2,1,0,-1,-2,-3);print_r($arr1);$arr = bubbleSort($arr1);print_r($arr);function bubbleSort($arr){ for($i=0;$icount($arr);$i++){ $flag = 0; //对已经有序的数组,优化排序次数 for($j=1;$jcount($arr)-$i;$j++) { if($arr[$j]$arr[$j-1]) { $temp = $arr[$j-1]; $arr[$j-1] = $arr[$j]; $arr[$j]=$temp; $flag = 1; } } if($flag ==0) { return $arr; } }快速排序算法$arr1 = array(5,4,3,2,1,0,-1,-2,-3);function quicksort($arr){ if(count($arr)=1) return $arr;//如果个数不大于一,直接返回 $key=$arr[0];//取一个值,稍后用来比较; $left_arr=array(); $right_arr=array(); for($i=1;$icount($arr);$i++){//比$key大的放在右边,小的放在左边; if($arr[$i]=$key) $left_arr[]=$arr[$i]; else $right_arr[]=$arr[$i]; } $left_arr=quicksort($left_arr);//进行递归; $right_arr=quicksort($right_arr); return array_merge($left_arr,array($key),$right_arr);//将左中右的值合并成一个数组;}//以下是测试print_r(quicksort($arr1));插入排序算法function insertSort($arr){ $count=count($arr); for($i=1;$i$count;$i++){ $tem=$arr[$i]; $j=$i-1; while ($arr[$j]$tem){ $arr[$j+1]=$arr[$j]; $arr[$j]=$tem; $j--; } } return $arr;}$arr1=array(2,5,1,3,7,4,8,0);print_r(insertSort($arr1));二分查找算法function binarySearch($array, $k, $low=0, $high=NULL){ if(count($array)!=0$high===null){ $high = count($array)-1; }else if(count($array==0)$high===null){ echo 空数组; return; } while($low = $high) //如果还存在剩余的数组元素 { $mid = intval(($low+$high)/2); //取$low和$high的中间值 if ($array[$mid] == $k) //如果找到则返回 { return $mid; } elseif ($k $array[$mid]) //如果没有找到,则继续查找 { return binarySearch($array, $k, $low, $mid-1); } else { return binarySearch($array, $k, $mid+1, $high); } } return -1;} $arr = array();$value = 4;echo binarysearch($arr, $value);无极限分类菜单的一个php实现,别人写的,觉得很不错$data=array(array(id=1,title=一级菜单一,par

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档