全面实现PHP排序算法

开发 后端 算法
插入排序、选择排序、,冒泡排序,时间复杂度貌似都是 O(N2),文章这里详细的介绍了实现PHP排序算法,希望对大家有帮助。

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

#T#今天贴刚使用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. ?> 
责任编辑:田树 来源: 博客
相关推荐

2018-06-22 08:35:46

软件定义数据中心SDDC

2009-03-12 18:41:39

APC数据中心虚拟化

2017-08-22 08:13:30

BarracudaAWS S3Amazon

2009-11-10 14:43:34

VB.NET隐藏控件

2015-03-19 15:13:20

PHP基本排序算法代码实现

2009-11-16 16:17:45

PHP数组排序

2009-05-13 10:05:59

Windows7微软D-Lin

2009-12-07 13:50:10

PHP函数shuffl

2009-11-30 18:59:52

PHP数组排序

2009-11-24 10:31:22

PHP函数sort()

2022-05-17 12:23:25

排序算法面试

2021-03-04 07:24:28

排序算法优化

2014-05-30 09:08:42

排序算法测试

2009-08-19 09:42:34

F#并行排序算法

2022-11-01 18:29:25

Go语言排序算法

2023-05-08 07:55:05

快速排序Go 语言

2012-08-09 09:11:32

PHP超时

2009-11-25 14:36:39

PHP函数usort(
点赞
收藏

51CTO技术栈公众号