直接插入排序

本文介绍了直接插入排序的原理,通过图解展示排序过程,并提供了相应的代码实现。直接插入排序将待排序序列分为已排序和未排序两部分,依次选取未排序元素在已排序序列中找到合适位置插入。
摘要由CSDN通过智能技术生成

人生当中成功只是一时的,失败却是主旋律。但是如何面对失败,却把人分成了不同的样子,有的人会被失败击垮,有的人能不断的爬起来继续向前...我想真正的成熟应该并不是追求完美,而是直面自己的缺憾,这才是生活的本质

目录

原理

图解

代码


原理

  • 将待排序序列分成两个序列,前面的序列保持有序,依次选取后面的序列的元素,在前面的序列中进行插入
  • 最初,选择第一个元素默认为有序序列
  • 设置一个哨兵(临时变量),保存要插入的元素
  • 插入数据,数据从有序序列的末尾开始比较,如果大于哨兵(临时变量),将当前数据向后移动一位.直到碰到比哨兵(临时变量)小的数据,就把临时变量插入到比它小的数据后面.
  • 循环执行

图解

代码

<?php

$arr = [10,5,6,87,8,9];
insertSort($arr);
var_dump($arr);

function insertSort(&$arr) {
    // 第一层for循环是无序列表中 要插入的元素
    // 因为默认把列表第一个数作为有序列表, 所以插入的元素开始位置为2
    for ($i=1; $i<count($arr); $i++) {
        // 哨兵,存储无序列表中要插入的值
        $index &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值