首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >php自带排序函数sort()和用自己用php实现的快速排序算法,速度比较。

php自带排序函数sort()和用自己用php实现的快速排序算法,速度比较。

作者头像
碧海长天
发布2021-10-21 16:00:36
发布2021-10-21 16:00:36
1.1K0
举报
文章被收录于专栏:golang探索者golang探索者

php自带排序函数sort()和用自己用php实现的快速排序算法,速度比较。

2017-5-19

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px 'Helvetica Neue'} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px 'Helvetica Neue'; min-height: 15.0px}

我今天特地试验了一下两者的性能

php自带的排序函数 100000的数据 排序 平均耗时0.068s

代码语言:javascript
复制
for ($i = 0; $i<100000;$i++){
$arr[] = rand(0,10000);
}
$t1 = microtime(true);
sort($arr);
$t2 = microtime(true);
echo "php自带排序sort()耗时:".($t2-$t1); 

自己写的快速排序 平均耗时1.0s

代码语言:javascript
复制
$t1 = microtime(true);
$returnAr = quickSort($arr);
$t2 = microtime(true);
echo "快速排序耗时:".($t2-$t1); 
//快速排序
function quickSort($arr) {    
$length = count($arr);  //先判断是否需要继续进行

if($length <= 1) {
return $arr;
}
$base_num = $arr[0];      //选择第一个元素作为基准
$left_array = array(); 
$right_array = array(); 
for($i=1; $i<$length; $i++) { 
if($base_num > $arr[$i]) 
{
$left_array[] = $arr[$i];
} else {
$right_array[] = $arr[$i];
}
}
$left_array = quickSort($left_array);
$right_array = quickSort($right_array);
return array_merge($left_array, array($base_num), $right_array);
}

明显是php自带的函数排序速度快很多。

但有时候需要二维数组排序,这时候就需要自己写啦~

代码语言:javascript
复制
function sort_arr($array,$key){
 $count = count($array);
 if ($count==0) return  false;
 if (count($array)==1){  
  return $array;
 }
 $mid = $array[0];
 $left_array = array();
 $right_array = array();
 for ($i=1;$i<$count;$i++){
  if ($array[$i][$key]>=$mid[$key]){  
   $right_array[]= $array[$i];
  
  }else{
   $left_array[]= $array[$i];
  }
 }
 $left_array = sort_arr($left_array,$key);
 $right_array = sort_arr($right_array,$key);
 $left_array[]=$mid;
 if (is_array($right_array)){
  return array_merge($left_array,$right_array);
 }else{
  return $left_array;
 }
 
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • php自带排序函数sort()和用自己用php实现的快速排序算法,速度比较。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档