Posted in PHP onOctober 09, 2012
冒泡排序实现原理
① 首先将所有待排序的数字放入工作列表中。
② 从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。
③ 重复步骤②,直至再也不能交换。
代码实现
<?php function bubbingSort(array $array) { for($i=0, $len=count($array)-1; $i<$len; ++$i) { for($j=$len; $j>$i; --$j) { if($array[$j] < $array[$j-1]) { $temp = $array[$j]; $array[$j] = $array[$j-1]; $array[$j-1] = $temp; } } } return $array; } print '<pre>'; print_r(bubbingSort(array(1,4,22,5,7,6,9))); print '</pre>';
快速排序实现原理
采用分治的思想:先保证列表的前半部分都小于后半部分,然后分别对前半部分和后半部分排序,这样整个列表就有序了。
代码实现
function quickSort(array $array) { $len = count($array); if($len <= 1) { return $array; } $key = $array[0]; $left = array(); $right = array(); for($i=1; $i<$len; ++$i) { if($array[$i] < $key) { $left[] = $array[$i]; } else { $right[] = $array[$i]; } } $left = quickSort($left); $right = quickSort($right); return array_merge($left, array($key), $right); } print '<pre>'; print_r(quickSort(array(1,4,22,5,7,6,9))); print '</pre>';
php排序算法(冒泡排序,快速排序)
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@