* 希爾排序算法,
* 希爾排序將數組按指定步長分隔成若干子序列,然後分別對子序列進行排序(在這是直接)
*/
function xier_sort($arr)
{
$len = count($arr);
$tmp;
$h = (int) $len / 2;
while ($h >= 1) {
for ($i = $h; $i < $len; $i ++) {
for ($j = $i; $j >= $h && ($arr[$j - $h] > $arr[$j]); $j --) {
$tmp = $arr[$j - $h];
$arr[$j - $h] = $arr[$j];
$arr[$j] = $tmp;
}
}
$h = (int) $h / 2;
}
return $arr;
}
print_r(xier_sort($arr));