PHP头条
热点:

全面实现PHP排序算法


学习PHP时,你可能会遇到 PHP排序问题,这里将介绍 PHP排序问题的解决方法,在这里拿出来和大家分享一下。每年总是要隔三差五的看数据结构,每次总是觉得自己很多东西没有学好,唉。

  • 全面攻击PHP优点六个方面总结
  • 三分钟学会PHP正则表达式
  • 巧用PHP正则表达式判断IP地址
  • 高手指点PHP星期几获取方法
  • 关于三种PHP操作符详细介绍
今天贴刚使用php实现4的排序算法,另外堆排序和归并排序没有写。插入排序、选择排序、,冒泡排序,时间复杂度貌似都是 O(N2),所以实际意义不大,在实际测试中,我对3000个数组元素进行,这三种排序算法都需要花费80秒左右,而快速排序只需要8秒,差距确是比较大,有兴趣的可以自己测试一下。下面我们就详细的看看你PHP排序算法的实现吧。

  1. <? 
  2. //插入排序一维数组)  
  3. function insert_sort($arr){  
  4. $countcount = count($arr);  
  5. for($i=1; $i<$count; $i++){  
  6. $tmp = $arr[$i];  
  7. $j = $i - 1;  
  8. while($arr[$j] > $tmp){  
  9. $arr[$j+1] = $arr[$j];  
  10. $arr[$j] = $tmp;  
  11. $j--;  
  12. }  
  13. }  
  14. return $arr;  
  15. }  
  16.  
  17.  
  18. //选择排序一维数组)  
  19. function select_sort($arr){  
  20. $countcount = count($arr);  
  21. for($i=0; $i<$count; $i++){  
  22. $k = $i;  
  23. for($j=$i+1; $j<$count; $j++){  
  24. if ($arr[$k] > $arr[$j])  
  25. $k = $j;  
  26. if ($k != $i){  
  27. $tmp = $arr[$i];  
  28. $arr[$i] = $arr[$k];  
  29. $arr[$k] = $tmp;  
  30. }  
  31. }  
  32. }  
  33. return $arr;  
  34. }  
  35.  
  36. //冒泡排序一维数组)   
  37. function bubble_sort($array){   
  38. $countcount = count($array);   
  39. if ($count <= 0) return false;   
  40.  
  41. for($i=0; $i<$count; $i++){   
  42. for($j=$count-1; $j>$i; $j--){   
  43. if ($array[$j] < $array[$j-1]){   
  44. $tmp = $array[$j];   
  45. $array[$j] = $array[$j-1];   
  46. $array[$j-1] = $tmp;   
  47. }   
  48. }   
  49. }   
  50. return $array;   
  51. }   
  52.  
  53. //快速排序一维数组)   
  54. function quick_sort($array){   
  55. if (count($array) <= 1) return $array;   
  56.  
  57. $key = $array[0];   
  58. $left_arr = array();   
  59. $right_arr = array();   
  60. for ($i=1; $i<count($array); $i++){   
  61. if ($array[$i] <= $key)   
  62. $left_arr[] = $array[$i];   
  63. else   
  64. $right_arr[] = $array[$i];   
  65. }   
  66. $left_arr = quick_sort($left_arr);   
  67. $right_arr = quick_sort($right_arr);   
  68.  
  69. return array_merge($left_arr, array($key), $right_arr);   
  70. }   
  71.  
  72. ?> 

www.phpzy.comtrue/php/16657.htmlTechArticle全面实现PHP排序算法 学习PHP时,你可能会遇到 PHP排序问题,这里将介绍 PHP排序问题的解决方法,在这里拿出来和大家分享一下。每年总是要隔三差五的看数据结构,每次总是觉得自己...

相关文章

    暂无相关文章

PHP之友评论

今天推荐