PHP最常见的四种排序算法分别是:冒泡排序法,选择排序法、插入排序法和快速排序法。下面我们就分别给出四种排序算法的实现代码,供大家参考。
1.冒泡排序法
<?php function bubble_sort($array) { $count = count($array); if ($count == 0) { return false; } for ($i=0; $i<$count; $i++) { for ($k=$count-1; $k>$i; $k--) { if ($array[$k] < $array[$k-1]) { $tmp = $array[$k]; $array[$k] = $array[$k-1]; $array[$k-1] = $tmp; } } } return $array; } $a = array(2, 5, 1, 3, 4); $a = bubble_sort($a); var_dump($a); ?>
2.选择排序法
<?php function select_sort($array) { $len = count($array); for($i=0; $i<$len-1; $i++) { $p = $i; for($j=$i+1; $j<$len; $j++) { if($array[$p] > $array[$j]) { $p = $j; } } if($p != $i) { $tmp = $array[$p]; $array[$p] = $array[$i]; $array[$i] = $tmp; } } return $array; } $a = array(2, 5, 1, 3, 4); $a = select_sort($a); var_dump($a); ?>
3.插入排序法
<?php function insert_sort($array) { $len = count($array); for($i=1; $i<$len; $i++) { $tmp = $array[$i]; for($j=$i-1; $j>=0; $j--) { if($tmp < $array[$j]) { $array[$j+1] = $array[$j]; $array[$j] = $tmp; } else { break; } } } return $array; } $a = array(2, 5, 1, 3, 4); $a = insert_sort($a); var_dump($a); ?>
4.快速排序法
<?php function quick_sort($array) { $len = count($array); if ($len <= 1) { return $array; } $base = $array[0]; $left = array(); $right = array(); for ($i=1; $i<$len; $i++) { if($base > $array[$i]) { $left[] = $array[$i]; } else { $right[] = $array[$i]; } } $left = quick_sort($left); $right = quick_sort($right); return array_merge($left, array($base), $right); } $a = array(2, 5, 1, 3, 4); $a = quick_sort($a); var_dump($a); ?>
阳光部落原创,更多内容请访问http://www.sunbloger.com/