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

PHP中实现冒泡排序和快速排序算法示例

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-04 16:59:03 浏览: 评论:0 

冒泡排序和快速排序算法在开发应用中各有优点了,下面我们来看几个关于php排序的几个例子.

使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组。

使用PHP描述顺序查找和二分查找,也叫做折半查找算法,顺序查找必须考虑效率,对象可以是一个有序数组.

写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数.

1.使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组,代码如下:

  1. function bubble_sort($array
  2. $count = count($array); 
  3. if ($count <= 0) return false; 
  4. for($i=0; $i<$count$i++){ 
  5. for($j=$count-1; $j>$i$j–){ 
  6. if ($array[$j] < $array[$j-1]){ 
  7. $tmp = $array[$j]; 
  8. $array[$j] = $array[$j-1]; 
  9. $array[$j-1] = $tmp
  10. return $array
  11. //开源软件:phpfensi.com 
  12. function quick_sort($array) { 
  13. if (count($array) <= 1) return $array
  14. $key = $array[0]; 
  15. $left_arr = $right_arr = array(); 
  16. foreach ($array as $val){ 
  17. if ($val < = $key
  18. $left_arr[] = $val
  19. else 
  20. $right_arr[] = $val
  21. $left_arr = quick_sort($left_arr); 
  22. $right_arr = quick_sort($right_arr); 
  23. return array_merge($left_arrarray($key), $right_arr); 

2.使用PHP描述顺序查找和二分查找,也叫做折半查找算法,顺序查找必须考虑效率,对象可以是一个有序数组,代码如下:

  1. function bin_sch($array$low$high$k){ 
  2. if ($low <= $high){ 
  3. $mid = intval(($low+$high)/2); 
  4. if ($array[$mid] == $k){ 
  5. return $mid
  6. }elseif ($k < $array[$mid]){ 
  7. return bin_sch($array$low$mid-1, $k); 
  8. }else
  9. return bin_sch($array$mid+1, $high$k); 
  10. return -1; 
  11. }function seq_sch($array$n$k){ 
  12. $array[$n] = $k
  13. for($i=0; $i<$n$i++){ 
  14. if($array[$i]==$k){ 
  15. break
  16. if ($i<$n){ 
  17. return $i
  18. }else
  19. return -1; 

3.写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数,代码如下:

  1. function array_sort($arr$keys$order=0) { 
  2. if (!is_array($arr)) { 
  3. return false; 
  4. $keysvalue = array(); 
  5. foreach($arr as $key => $val) { 
  6. $keysvalue[$key] = $val[$keys]; 
  7. if($order == 0){ 
  8. asort($keysvalue); 
  9. }else { 
  10. arsort($keysvalue); 
  11. reset($keysvalue); 
  12. foreach($keysvalue as $key => $vals) { 
  13. $keysort[$key] = $key
  14. $new_array = array(); 
  15. foreach($keysort as $key => $val) { 
  16. $new_array[$key] = $arr[$val]; 
  17. return $new_array
  18. }

Tags: PHP冒泡排序 PHP排序算法

分享到: