首页 > 代码库 > 排序算法之冒泡&快速&桶式算法
排序算法之冒泡&快速&桶式算法
1 <?php 2 3 /** 4 * 冒泡排序算法(从小到大) 5 * @param array &$arr 待排序数组 6 */ 7 function bubbleSort(&$arr){ 8 $flag = 0; 9 $arr_size = count($arr);10 for($i=1; $i<=$arr_size-1; ++$i){11 12 for($j=0; $j<$arr_size-$i; ++$j){13 if($arr[$j] > $arr[$j+1]){14 $temp = $arr[$j];15 $arr[$j] = $arr[$j+1];16 $arr[$j+1] = $temp;17 $flag = 1 ;18 }19 }20 21 if($flag == 0){22 break;23 }else{24 $flag = 0;25 }26 }27 }
1 /** 2 * 快速排序算法(从小到大) 3 * @param array $arr 待排序数组 4 * @return array 已排序数组 5 */ 6 function quickSort($arr){ 7 $length = count($arr); 8 if($length <= 1){ 9 return $arr;10 }11 12 $base = $arr[0];13 $left_array = []; 14 $right_array = [];15 16 for($i=1; $i<$length; $i++){17 if($base > $arr[$i]){18 $left_array[] = $arr[$i];19 }else{20 $right_array[] = $arr[$i];21 }22 }23 24 $left_array = quickSort($left_array);25 $right_array = quickSort($right_array);26 27 return array_merge($left_array,array($base),$right_array);28 29 }
1 //桶式排序 2 /** 3 * 桶式排序算法(从小到大) 排序确定在某个范围内的整数时比快速排序还要快 4 * @param array &$arr 待排序数组 5 */ 6 function bucketSort(&$arr){ 7 8 $min = 0; 9 $max = 1000000;10 $array_bucket = array_fill($min, $max-$min+1, 0);11 12 foreach($arr as $value){13 ++$array_bucket[$value];14 }15 16 $arr = [];17 foreach($array_bucket as $k => $v){18 for($i=1;$i<=$v;$i++){19 $arr[] = $k;20 }21 }22 23 }
总结:
NO.1 入门级排序算法----冒泡排序(优化后)
NO.2 实操中最快排序算法----快速排序
NO.3 比快速排序更快的排序算法----桶式排序(排序确定在某个范围内的整数时)
排序算法之冒泡&快速&桶式算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。