PHP Common algorithm "bubble sort, quick sort, insert sort, select Sort, binary search, ... 】
Bubble sort function Bubblesort ($arr) { for ($i =0, $j =count ($arr); $i < $j; $i + +) {for ($k = $j-1; $k > $i; $k-) { if ($arr [$k] < $arr [$k-1]) list ($arr [$k-1], $arr [$k]) = Array ($arr [$k], $arr [$k-1]); } } return $arr;} $arr = Array (1,4,14,3,56,23,435,2,234,2,33,23,123);p Rint_r (Bubblesort ($arr));
Quick Sort function Quicksort ($arr) { if ($count = count ($arr)) <= 1) return $arr; $base = $arr [0]; $left = $right = Array (); for ($i =1; $i < $count; $i + +) { if ($arr [$i] <= $base) $left [] = $arr [$i]; else $right [] = $arr [$i]; } $left = Quicksort ($left); $right = Quicksort ($right); Return Array_merge ($left, Array ($base), $right);} echo Join (', ', Quicksort (Array (1,3,23,5,234,65,6)));?
Insert Sort function Insertsort ($arr) { for ($i =1, $j =count ($arr); $i < $j; $i + +) { $k = $i; while ($k > 0 && $arr [$k-1] > $arr [$k]) { list ($arr [$k], $arr [$k-1]) = Array ($arr [$k-1], $arr [$k]); $k--; } } return $arr;} $array =array (10,8,7,5,1,2,3,4);p Rint_r (Insertsort ($array));
?
Select Sort, (non-recursive) function Selectsort ($arr) { for ($i =0, $j =count ($arr); $i <= $j; $i + +) { $min = $i; $temp = $arr [$i]; for ($k = $i +1; $k < $j; $k + +) { if ($temp > $arr [$k]) { $min = $k; $temp = $arr [$k]; } } if ($min! = $i) List ($arr [$min], $arr [$i]) = Array ($arr [$i], $arr [$min]); } return $arr;} $arr = Array (9,3,11,23,90,99,12,34,22,87,32);p Rint_r (Selectsort ($arr));
?
Select sort (Recursive implementation) function Selectsort2 ($arr, $start = 0) { if ($count = count ($arr)) = = = $start + 1) return $arr; $new = Array (); $min = $arr [$start]; $min _index = $start; for ($i = $start +1; $i < $count-1; $i + +) { if ($arr [$i] < $min) { $min = $arr [$i]; $min _index = $i; } } if ($arr [$start]! = $min) List ($arr [$start], $arr [$min _index]) = Array ($arr [$min _index], $arr [$start]); Return Selectsort ($arr, $start + 1);} $arr = Array (9,3,11,23,90,99,12,34,22,87,32);p Rint_r (Selectsort ($arr));
?
?
?
$base) return BinarySearch ($arr, $value, $index +1, $end); else return $index;} $arr = Array (1, 3, 5, 6, 7, 8, ten,, +,); $value = 8;echo BinarySearch ($arr, $value);
?
Cond...