PHP语言的几种排序算法和二分查找.docx_第1页
PHP语言的几种排序算法和二分查找.docx_第2页
PHP语言的几种排序算法和二分查找.docx_第3页
PHP语言的几种排序算法和二分查找.docx_第4页
PHP语言的几种排序算法和二分查找.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 直接选择排序算法function selectSort($arr) for($i=0;$icount($arr)-1;$i+) $k=$i; for($j=$i+1;$j$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);2、 冒泡排序算法$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; 3、 快速排序算法$arr1 = array(5,4,3,2,1,0,-1,-2,-3);function quicksort($arr) if(count($arr)=1) return $arr;/如果个数不大于一,直接返回 $key=$arr0;/取一个值,稍后用来比较; $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);4、 插入排序算法function insertSort($arr) $count=count($arr); for($i=1;$i$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);5、 二分查找算法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 1,title=一级菜单一,parent=0), array(id=2,title=一级菜单二,parent=0), array(id=3,title=二级菜单一,parent=1), array(id=4,title=二级菜单二,parent=1), array(id=5,title=二级菜单三,parent=1), array(id=6,title=三级菜单,parent=4);$menu = array();$menu = getMenu($data, 0);function getMenu($arr,$pid) foreach($arr as $key=$val) if($valparent = $pid)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论