PHP数据结构——冒泡排序与快速排序的比较

//冒泡排序(数组中实现) function bubble_sort($arr) { $cnt = count($arr); if($cnt<=0) return false; for($i=0; $i<$cnt;$i++) { for($j=$cnt-1; $j>$i;$j--) { if($arr[$j]<$arr[$j-1]) { $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<count($arr); $i++) { if($arr[$i]<$key) { $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])."<br>";//测试冒泡排序法所需要的时间 echo '----------------------------------'.'<br>'; $time_start = explode(" ",microtime()); quicksort($arr1); $time_end = explode(" ", microtime()); echo "快速排序法所需要的时间:"; echo ($time_end[0]+$time_end[1] - $time_start[0]-$time_start[1])."<br>";//测试快速排序法所需要的时间 echo '-------------------------------------'."<br>"; $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])."<br>";//测试PHP内置函数排序法所需要的时间 测试结果: 冒泡排序法所需要的时间:22.864297151566 ---------------------------------- 快速排序法所需要的时间:0.22899389266968 ------------------------------------- PHP内置函数排序法所需要的时间:0.037806987762451

你可能感兴趣的:(PHP数据结构——冒泡排序与快速排序的比较)