<?php
/**
* Select sort, bubble sort, sort by comparison of each data
*
*/
$arr = Array (2,1,7,5,8,9,3,4,10,30,28,24);
function Bubblesort ($arr) {
$len = count ($arr);
$k = 0;
for ($i =0; $i < $len; $i + +) {
$k + +;
for ($j = $i +1; $j < $len; $j + +) {
if ($arr [$i] > $arr [$j]) {
$k + +;
$tmp = $arr [$i];
$arr [$i] = $arr [$j];
$arr [$j] = $tmp;
}
}
}
Echo $k;
return $arr;
}
Print_r (Bubblesort ($arr));
/**
* Insert Sort
* Insert sort can avoid the need to sort the data in a part that is already ordered by the tree according to the sort
* Determine if the data behind the current position I is in order.
*/
function Insertsort ($arr) {
$len = count ($arr);
$k = 0;
for ($i =1; $i < $len; $i + +) {
$k + +;
Sort $arr [i], $arr [$i-1],...., $arr [i-n]
for ($j = $i; $j > 0 && ($arr [$j-1] > $arr [$j]); $j-) {
$tmp = $arr [$j-1];
$arr [$j-1] = $arr [$j];
$arr [$j] = $tmp;
$k + +;
}
}
Echo $k;
return $arr;
}
Print_r (Insertsort ($arr));
/***
* Hill Sort
* Hill sort is optimized for insertion sequencing, and hill sort has good processing power for large chaotic data
*
*/
function Heersort ($arr) {
$len = count ($arr);
$tmp = ";
$h = (int) $len/2;
$k = 0;
while ($h >=1) {
$k + +;
for ($i = $h; $i < $len; $i + +) {
$k ++;//sort $arr [i], $arr [$i-h],...., $arr [i-n*h]
for ($j = $i; $j >= $h && ($arr [$j-$h] > $arr [$j]); $j-) {
$tmp = $arr [$j-$h];
$arr [$j-$h] = $arr [$j];
$arr [$j] = $tmp;
$k + +;
}
}
$h = (int) $h/2;
}
Echo $k;
return $arr;
}
Print_r (Heersort ($arr));
PHP implementation of bubbling, inserting sort, hill sort, merge sort