插入排序

在要排序的一组数中,假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。

$list = array(10,3,5,7,18,11,45,64,74,23,21,6);
$list = insertSort($list);
var_dump($list);

function insertSort($arr) {
    $len=count($arr); 
    for($i=1, $i<$len; $i++) {
        $tmp = $arr[$i];
        //内层循环控制,比较并插入
        for($j=$i-1;$j>=0;$j--) {
            if($tmp < $arr[$j]) {
                //发现插入的元素要小,交换位置,将后边的元素与前面的元素互换
                $arr[$j+1] = $arr[$j];
                $arr[$j] = $tmp;
            } else {
                //如果碰到不需要移动的元素,由于是已经排序好是数组,则前面的就不需要再次比较了。
                break;
            }
        }
    }
    return $arr;
}

本文由 一切随风 创作,可自由转载、引用,但需署名作者且注明文章出处。

9 条评论

  1. fnfhphbssf
    fnfhphbssf

    烈火中

  2. klomaidpki
    klomaidpki

    广东小老虎

  3. bzcdvvmnrd
    bzcdvvmnrd

    六月里来好阳光

  4. khvrprqmvk
    khvrprqmvk

    番薯浇米

  5. srncctecdv
    srncctecdv

    这是汤姆格林的纪录片

  6. btucfjdhey
    btucfjdhey

    建议在开头增加背景铺垫,增强读者代入感。

  7. bkllamnkzj
    bkllamnkzj

    ?总结与建议类?

  8. xhbgfyionw
    xhbgfyionw

    《公主代理人续篇:第一章》动画片高清在线免费观看:https://www.jgz518.com/xingkong/144904.html

  9. iaiipvvcxz
    iaiipvvcxz

    不错不错,我喜欢看 www.jiwenlaw.com

添加新评论