php 快速排序和冒泡排序 区别,PHP数据结构——冒泡排序与快速排序的比较

//冒泡排序(数组中实现)

function bubble_sort($arr) {

$cnt = count($arr);

if($cnt<=0) return false;

for($i=0; $i

for($j=$cnt-1; $j>$i;$j--) {

if($arr[$j]

$tmp = $arr[$j];

$arr[$j] = $arr[$j-1];

$arr[$j-1]=$tmp;

}

}

}

return $arr;

}

//快速排序(数组排序)

function quicksort($arr) {

if(count($arr)<=1) return $arr;

$key = $arr[0];

$left_arr = array();

$right_arr = array();//新建一个数组

for($i=1; $i

if($arr[$i]

$left_arr[] = $arr[$i];

} else {

$right_arr[] = $arr[$i];

}

}

$left_arr = quicksort($left_arr);

$right_arr = quicksort($right_arr);

return array_merge($left_arr,array($key),$right_arr);

}

for($i=0;$i<10000;$i++) {//测试数组

$arr1[$i] = rand(0,10000);

}

$time_start = explode(" ",microtime());

bubble_sort($arr1);

$time_end = explode(" ", microtime());

echo "冒泡排序法所需要的时间:";

echo ($time_end[0]+$time_end[1] - $time_start[0]-$time_start[1])."
";//测试冒泡排序法所需要的时间

echo '----------------------------------'.'
';

$time_start = explode(" ",microtime());

quicksort($arr1);

$time_end = explode(" ", microtime());

echo "快速排序法所需要的时间:";

echo ($time_end[0]+$time_end[1] - $time_start[0]-$time_start[1])."
";//测试快速排序法所需要的时间

echo '-------------------------------------'."
";

$time_start = explode(" ",microtime());

sort($arr1);//php内置对数组排序函数

$time_end = explode(" ", microtime());

echo "PHP内置函数排序法所需要的时间:";

echo ($time_end[0]+$time_end[1] - $time_start[0]-$time_start[1])."
";//测试PHP内置函数排序法所需要的时间

测试结果:

冒泡排序法所需要的时间:22.864297151566

----------------------------------

快速排序法所需要的时间:0.22899389266968

-------------------------------------

PHP内置函数排序法所需要的时间:0.037806987762451

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值