资讯专栏INFORMATION COLUMN

php的插入排序,通过双层for循环

weij / 2915人阅读

摘要:上还有个空档,这时候把补上就行了外层次循环待插入的数外层待插入的数为内层次循环要插入的已经排序好的小所以要腾出一个空来给这时候索引的值为要往后靠,此时外层次循环结束注意此处两值如果已经经历了内层循环,那么就此时完成把的值赋予

1.外层循环是从数组中选出一个arr[i]将要插入到有序数组的数
2.内层循环是遍历已经排序好的数组,
    将arr[i](也就是temp)依次与有序数组做对比,
    如果发现有序数组其中一个比准备插进来的arr[i]大,
    那么谁比这个arr[i]大,谁就出去,把位置腾出去,
    当然比arr[i]大的这个数也不能扔,就给他放在已经排号序数组中
    且相对于他的下一个索引就好了。
3.上2还有个空档,这时候把temp补上就行了
= 0 && $temp < $arr[$j]; $j--)
        {
            echo "====>内层{$j}=" . $j . "次循环" . "
";
            echo "要插入的$temp" . "=$temp " . "VS " . "已经排序好的$arr[$j]=" . "$arr[$j]" . "小
";

            $arr[$j + 1] = $arr[$j];
            echo "所以要腾出一个空来给temp,这时候索引$j的值为".$arr[$j]."要往后靠,此时$j=" . $j, "
";
        }

        echo "外层{$i}=" . $i . "次循环结束";
        // var_dump($temp,$arr[$i]);注意此处两值如果已经经历了内层循环,那么就!==
        $arr[$j + 1] = $temp;
        echo "  此时完成$j=" . $j . "把temp的值" . "$temp" . "赋予$j+1" . "
";

        echo "=====", "
";

    }
    return $arr;
}

var_dump(insertSort($arr));

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22017.html

相关文章

  • 这或许是东半球讲十大排序算法最好一篇文章

    摘要:希尔排序希尔排序这个名字,来源于它的发明者希尔,也称作缩小增量排序,是插入排序的一种更高效的改进版本。我们可以发现,当区间为的时候,它使用的排序方式就是插入排序。 冒泡排序 冒泡排序无疑是最为出名的排序算法之一,从序列的一端开始往另一端冒泡(你可以从左往右冒泡,也可以从右往左冒泡,看心情),依次比较相邻的两个数的大小(到底是比大还是比小也看你心情)。 showImg(https://s...

    wind3110991 评论0 收藏0
  • PHP算法之四大基础算法

    摘要:而在证明算法是正确的基础上,第二步就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。 showImg(https://segmentfault.com/img/remote/1460000016451712?w=800&h=341); 前言 虽然工作中,你觉得自己并没有涉及到算法这方面的东西,但是算法是程序的...

    isLishude 评论0 收藏0
  • 比较排序算法(PHP

    摘要:总结比较排序算法都是空间复杂度为的原地排序算法,其中冒泡排序和插入排序两两比较不会交换相等的记录,所以这两种排序都是稳定排序,而选择排序只是记录最小值最后进行交换,所以会破坏相对顺序,选择排序不是稳定算法。 冒泡排序 两两比较相邻记录的关键字,如果反序则交换,大的数字往下沉,一直到最大的出现在数组最后 function swap(&$x, &$y) { $temp = $x; ...

    浠ラ箍 评论0 收藏0
  • 再见,重复你(数组去重)

    摘要:前言昨天跟在前端好友聊天时,她提到了一个问题数组去重你会怎么写。利用将结构转换成数组拓展运算符内部使用循环参考浅谈数组去重数组去重小结标准入门第版 前言 昨天跟在前端好友聊天时,她提到了一个问题:数组去重你会怎么写?。想了想,其实有好几种方法,决定在这篇笔记中做一些记录。 思路一: 双层循环,外层循环元素,内层循环时比较值 如果有相同的值则跳过,不相同则push进数组 Array....

    EsgynChina 评论0 收藏0
  • PHP排序算法之插入排序

    摘要:直接插入排序是由两层嵌套循环组成的。插入排序的基本方法是每步将一个待排序的记录按其关键字的大小插到前面已经排序的序列中的适当位置,直到全部记录插入完毕为止。算法实现直接插入排序记录后移插入到正确的位置运行结果 算法引入: 在这里我们依然使用《大话数据结构》里面的一个例子: 扑克牌是我们几乎每个人都玩过的游戏。平时我们开始的时候一般都是一个人发牌,其他人都是一边摸牌,一边理牌,假如你摸上...

    rose 评论0 收藏0

发表评论

0条评论

weij

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<