全面实现PHP排序算法

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

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

#T#今天贴刚使用php实现4的排序算法,另外堆排序和归并排序没有写。插入排序、选择排序、,冒泡排序,时间复杂度貌似都是 O(N2),所以实际意义不大,在实际测试中,我对3000个数组元素进行,这三种排序算法都需要花费80秒左右,而快速排序只需要8秒,差距确是比较大,有兴趣的可以自己测试一下。下面我们就详细的看看你PHP排序算法的实现吧。

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

2018-06-22 08:35:46

软件定义数据中心SDDC

2009-03-12 18:41:39

APC数据中心虚拟化

2009-11-10 14:43:34

VB.NET隐藏控件

2017-08-22 08:13:30

BarracudaAWS S3Amazon

2015-03-19 15:13:20

PHP基本排序算法代码实现

2024-08-30 14:34:00

2009-11-16 16:17:45

PHP数组排序

2009-05-13 10:05:59

Windows7微软D-Lin

2009-11-30 18:59:52

PHP数组排序

2009-12-07 13:50:10

PHP函数shuffl

2009-11-24 10:31:22

PHP函数sort()

2014-05-30 09:08:42

排序算法测试

2022-05-17 12:23:25

排序算法面试

2021-03-04 07:24:28

排序算法优化

2022-11-01 18:29:25

Go语言排序算法

2009-08-19 09:42:34

F#并行排序算法

2023-05-08 07:55:05

快速排序Go 语言

2012-08-09 09:11:32

PHP超时
点赞
收藏

51CTO技术栈公众号