/** * @title 冒泡排序 * @desc 在要排序的一组数中,对当前还未排好序的范围内的全部数, * 自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。 * 即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 * @p
/**
* @title 冒泡排序
* @desc 在要排序的一组数中,对当前还未排好序的范围内的全部数,
* 自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。
* 即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
* @param array $data
* @return array $data
* @author bandit
*/
function bubble_sort(array $data){
$length = count($data);
for($i=$length;$i>1;$i--){
for($j=0;$j<$i-1;$j++){
if($data[$j]>$data[$i+1]){
list($data[$i],$data[$j])=array($data[$j],$data[$j+1]);
}
}
}
return $data;
}
/**
* @ttile 快速排序
* @desc
* @param array $data
*
* @return array $data
* @author bandit
*/
function quick_sort($data){
$front = $end = array();
$length = count($data);
if($length<=1){return $data;}
for($i=1;$i<$length;$i++){
if($data[$i]<=$data[0]){
$front[] =$data[$i];unset($data[$i]);
}else{
array_unshift($end,$data[$i]);unset($data[$i]);
}
}
$front = quick_sort($front);
$end = quick_sort($end);
return array_merge($front,array($data[0]),$end);
}
各种排序的稳定性,时间复杂度和空间复杂度总结:
时间复杂度函数O(n)的增长情况
参考文档:http://blog.csdn.net/hguisu/article/details/7776068
小邮包-包月订购包年服务网,该程序由好买卖商城开发,程序采用PHP+MYSQL架设,程序商业模式为目前最为火爆的包月订制包年服务模式,这种包年订购在国外网站已经热火很多年了,并且已经发展到一定规模,像英国的男士用品网站BlackSocks,一年的袜子购买量更是达到了1000万双。功能:1、实现多产品上线,2、不用注册也可以直接下单购买,3、集成目前主流支付接口,4、下单发货均有邮件提醒。
0
原文地址:排序算法PHP实现[下], 感谢原作者分享。
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号