美文网首页
前端-直接插入排序

前端-直接插入排序

作者: FConfidence | 来源:发表于2018-09-07 23:23 被阅读8次
  1. 直接插入排序

    思想: 将L[i]插入到已经有的子序列L[1...i-1]中

    1. 保存L[i]的值
    2. 查找出L[i] 在子序列L[1...i-1]中, 应该插入的位置k
    3. 将L[1...i-1]中比L[i]到的值全部往后移动一个位置
    4. 将L[k]的位置赋值为第一步中保存的L[i]的值
  2. 稳定性: 稳定

  3. 时间复杂度: O(n^2)

function InsertSort(arr) {
  const len = arr.length;
  let i, j;
  for (i = 1; i < len; i++) {
    // 如果后面的元素比前面的元素大的话, 表示需要调整位置
    if (arr[i - 1] > arr[i]) {
      const temp = arr[i];
      for (j = i - 1; arr[j] > temp; j--) {
        // 将比temp大的往后移动
        arr[j + 1] = arr[j];
      }
      // 将temp放在应该的位置
      arr[j + 1] = temp;
    }
  }
}

// 看 9,1的交换
const a = [5, 2, 4, 3, 8, 6, 9, 1, 0, 7];
InsertSort(a);
console.log(a)


/*
   {4,5,1,2,6,3}
   
   {1,4,5,2,6,3}
   {1,2,4,5,6,3}
   {1,2,4,5,6,3}
   {1,2,3,4,5,6}
*/

相关文章

  • 前端-直接插入排序

    直接插入排序思想: 将L[i]插入到已经有的子序列L[1...i-1]中保存L[i]的值查找出L[i] 在子序列L...

  • 插入排序

    一、直接插入排序 二、折半插入排序

  • 【数据结构】【C#】013-插入类排序:🥇直接插入排序(稳定)

    插入排序:直接插入排序(稳定) 【 算法思想 】 直接插入排序是一种最基本的插入排序方法,其基本操作是将第 i 个...

  • 排序——插入排序

    业精于勤荒于嬉 插入排序包括:直接插入排序、折半插入排序、希尔排序(缩小增量排序) 一、直接插入排序 1. 算法思...

  • 常用算法

    插入排序 包括直接插入排序和希尔插入排序 直接插入排序 将一个记录插入到已经排序好的有序表中。 sorted数组的...

  • 算法(排序)

    一、内部排序 1、插入排序—直接插入排序(Straight Insertion Sort) 2、插入排序—希尔排序...

  • 直接插入排序

    //直接插入排序

  • iOS算法

    排序方法 选择排序:直接选择排序、堆排序。 交换排序:冒泡排序、快速排序。 插入排序:直接插入排序、二分法插入排序...

  • 几种实用的简易的排序算法

    也是面试题 一、插入排序 1.插入排序—直接插入排序(Straight Insertion Sort) 思路 遍历...

  • 2.1-插入排序-直接插入

    参考链接 插入排序:直接插入排序(Straight Insertion Sort) 白话经典算法系列之二 直接插入...

网友评论

      本文标题:前端-直接插入排序

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