PHP四大排序算法
<?php
class Sort
{
public static function insert(&$arr)
{
$len = count($arr);
for ($i = 1; $i < $len; $i++) {
$temp = $arr[$i];
for ($j = $i - 1; $j >= 0; $j--) {
if ($arr[$j] > $temp) {
$arr[$j + 1] = $arr[$j];
} else {
break;
}
}
$arr[$j + 1] = $temp;
}
}
public static function bubble(&$arr)
{
$len = count($arr);
for ($i = 0; $i < $len - 1; $i++) {
for ($j = $len - 1; $j > $i; $j--) {
if ($arr[$j - 1] > $arr[$j]) {
$temp = $arr[$j - 1];
$arr[$j - 1] = $arr[$j];
$arr[$j] = $temp;
}
}
}
}
public static function quick(&$arr, $start = 0, $end = NULL)
{
$len = count($arr);
$end = is_null($end) ? $len - 1 : $end;
$temp = $arr[$start];
$i = $start;
$j = $end;
if ($start < $end) {
while ($i !== $j) {
for (; $j > $i; $j--) {
if ($arr[$j] < $temp) {
$arr[$i] = $arr[$j];
break;
}
}
for (; $i < $j; $i++) {
if ($arr[$i] > $temp) {
$arr[$j] = $arr[$i];
break;
}
}
}
$arr[$i] = $temp;
self::quick($arr, $start, $i - 1);
self::quick($arr, $i + 1, $end);
}
}
public static function select(&$arr){
$len=count($arr);
for($i=0;$i<$len-1;$i++){
$k=$i;
for($j=$i+1;$j<$len;$j++){
if($arr[$j]<$arr[$k]){
$k=$j;
}
}
$temp=$arr[$i];
$arr[$i]=$arr[$k];
$arr[$k]=$temp;
}
}
}
$arr = [35, 4, 3, 23423, 33, 67, 344, 45, 12, 645, 57, 656, 67];
Sort::insert($arr);
print_r($arr);