算法原理:

    PHP代码:

    1. // 交换法
    2. function InsertSort1($arr) {
    3. $count = count($arr);
    4. if ($count <= 1) {
    5. return $arr;
    6. }
    7. for ($i=0; $i<$count-1; $i++) {
    8. for ($j=$i+1; $j>0; $j--) {
    9. if ($arr[$j] > $arr[$j-1]) {
    10. $tmp = $arr[$j];
    11. $arr[$j] = $arr[$j-1];
    12. $arr[$j-1] = $tmp;
    13. }
    14. }
    15. }
    16. return $arr;
    17. }
    18. // 插入法
    19. function InsertSort2($arr) {
    20. $count = count($arr);
    21. if ($count < 2) {
    22. return $arr;
    23. }
    24. for ($i=1; $i < $count; $i++) {
    25. $tmp = $arr[$i];
    26. $j = $i - 1;
    27. while ($j >= 0 && $arr[$j] > $tmp) {
    28. $arr[$j+1] = $arr[$j];
    29. $j--;
    30. }
    31. $arr[$j+1] = $tmp;
    32. }
    33. }