美文网首页程序员的成长之道
PHP实现插入排序算法

PHP实现插入排序算法

作者: 菜菜菜鸟羊 | 来源:发表于2019-09-27 16:49 被阅读0次

多的不说,直接上代码

/**
 * 插入排序
 * 思路:默认第一个数是已经排好序的数,取一个数,从取的这个数的前一个数开始循环(从后往前),如果前一个数大于取出的数,
 *       那么就把前一个数往后移动,直到取数大于循环数的前一个数时,那么就把这个取数插入到循环数的前一个数之后
 * @param array $noSortArr
 * @return array
 */
function insertionSort($noSortArr) : array
{
    $len = count($noSortArr);
    for ($i = 1; $i < $len; $i++) { //默认从第一个数为已经排好序的数,所以从第二个数开始
        $preIndex = $i - 1;  //取数的前一个数开始右后往前循环
        $curIndex = $noSortArr[$i]; //标记取数
        while ($preIndex >= 0 && $noSortArr[$preIndex] > $curIndex) {
            $noSortArr[$preIndex + 1] = $noSortArr[$preIndex]; //如果前一个数大于取数,把前一个数往后移动
            $preIndex--;
        }
        $noSortArr[$preIndex + 1] = $curIndex;  //找到合适位置,插入取数
    }

    return $noSortArr;
}

-欢迎指正优化,谢谢!

相关文章

  • 算法-插入排序

    算 法:插入排序算法时间复杂度: 插入排序算法描述 插入排序伪代码 插入排序实现 插入排序算法概述 插入排...

  • PHP实现插入排序算法

    多的不说,直接上代码 -欢迎指正优化,谢谢!

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • java 实现排序算法之「插入排序」

    java 实现排序算法系列 这是 Java 实现排序算法的第三篇文章——插入排序算法。插入排序可以说成是「一类」简...

  • python实现插入排序(InsertSort)

    python实现【插入排序】 算法原理及介绍 插入排序(Insertion-Sort)的算法描述是一种简单直观的排...

  • 插入排序算法实现

    排序算法是最常见,最基础的算法,作者文集中记录了两种排序算法(插入排序,归并排序) 插入排序算法实现很简单直接,附...

  • 排序算法详细代码实现

    算法分类 算法时间复杂度 选择排序 插入排序 C++实现 Python实现 冒泡排序 Python实现 归并排序 ...

  • 2018-08-02

    php实现组合枚举算法 源码

  • 插入排序及优化 && 冒泡排序及优化

    8.14打卡 插入排序 算法描述 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 从第一...

  • JavaScript实现的9大排序算法

    笔试面试经常涉及各种算法,本文简要介绍常用的一些算法,并用javascript实现。 1、插入排序 1)算法简介 ...

网友评论

    本文标题:PHP实现插入排序算法

    本文链接:https://www.haomeiwen.com/subject/apdauctx.html