算法原理:

    PHP代码:

    1. function shellSort($arr) {
    2. $count = count($arr);
    3. if ($count < 2) {
    4. return = $arr;
    5. }
    6. for ($gap=floor($count/2); $gap > 0; $gap = floor($gap/2)) {
    7. for ($i=$gap; $i < $count; $i++) {
    8. $j = $i - $agp;
    9. $tmp = $arr[$i];
    10. while ($j >= 0 && $arr[$j] > $tmp) {
    11. $arr[$j + $gap] = $arr[$j];
    12. $j = $j - $gap;
    13. }
    14. $arr[$j + $gap] = $tmp;
    15. }
    16. }
    17. return $arr;
    18. }