当前位置:首页 > PHP教程 > php应用 > 列表

PHP冒泡法排序与二分法查找实例

发布:smiling 来源: PHP粉丝网  添加日期:2014-01-07 16:31:11 浏览: 评论:0 

冒泡法排序与二分法查找排序算法是我们在初中时就学过的,下面我来介绍在PHP冒泡法排序与二分法查 找实例,各位同学不防进入参考.

冒泡法排序,随便给出一个乱序数组

$arr = array(0,2,10,9,19,23,89,112,321,234);

统计数组:$num = count($arr);

冒泡倒序排列:

  1. for($i=0;$i<$num-1;$i++){ 
  2.  for($m=0;$m<$num-1;$m++){ 
  3.   if($arr[$m]<$arr[$m+1]){ 
  4.    $temp = $arr[$m]; 
  5.    $arr[$m] = $arr[$m+1]; 
  6.    $arr[$m+1] = $temp
  7.   } 
  8.   // echo $arr[$m].'<br>'; 
  9.  } 
  10. //输出排序后的结果 
  11. var_dump($arr); 
  12. //冒泡顺序排列 
  13. for($x=0;$x<$num-1;$x++){ 
  14.  for($y=0;$y<$num-1;$y++){ 
  15.   if($arr[$y]>$arr[$y+1]){ 
  16.    $temp = $arr[$y]; 
  17.    $arr[$y] = $arr[$y+1]; 
  18.    $arr[$y+1] = $temp
  19.   } 
  20.  } 
  21. //输出排序后的结果 
  22. var_dump($arr); 
  23. //二分法查找 
  24. function dichotomy($array,$k,$low=0,$high=0){ 
  25.  if(count($array)!= 0 && $high == 0){ 
  26.   $high = count($array); 
  27.  } 
  28.  if($low <= $high){ 
  29.   $mid = intval(($low+$high)/2); 
  30.   if$array[$mid] == $k ){ 
  31.    return $mid
  32.   }elseif$k<$array[$mid]){ 
  33.    return dichotomy( $array,$k,$low=0,$mid-1); 
  34.   }else
  35.    return dichotomy( $array,$k,$mid+1,$high); 
  36.   } 
  37.  }else
  38.   return false; 
  39.  } 
  40. //输出查找结果 
  41. echo dichotomy($arr,23); 

今天简单的研究了一下最常用的冒泡法排序与二分法查找,写了一个简单的案例,加强自己对php的学习,也希望对今后php学习者能提供一点点的帮助。

Tags: PHP冒泡 排序 二分法

分享到: