前端算法之插入排序

简介: 前端算法之插入排序

3、插入排序(Insertion Sort)

插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

3.1 算法描述

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

  • 从第一个元素开始,该元素可以认为已经被排序;
  • 取出下一个元素,在已经排序的元素序列中从后向前扫描;
  • 如果该元素(已排序)大于新元素,将该元素移到下一位置;
  • 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;
  • 将新元素插入到该位置后;
  • 重复步骤2~5。
function insertionSort(arr) {
 
 
    var len = arr.length;
 
 
    var preIndex, current;
 
 
    for (var i = 1; i < len; i++) {
 
 
        preIndex = i - 1;
 
 
        current = arr[i];
 
 
        while (preIndex >= 0 && arr[preIndex] > current) {
 
 
            arr[preIndex + 1] = arr[preIndex];
 
 
            preIndex--;
 
 
        }
 
 
        arr[preIndex + 1] = current;
 
 
    }
 
 
    return arr;
 
 
}


目录
相关文章
|
3天前
|
前端开发 算法
sass 公用10个mixins代码块,算法太TM重要了,前端开发要求
sass 公用10个mixins代码块,算法太TM重要了,前端开发要求
|
5天前
|
移动开发 算法 前端开发
前端算法之堆排序
前端算法之堆排序
15 1
|
5天前
|
算法 前端开发
前端算法之快速排序
前端算法之快速排序
14 0
|
5天前
|
算法 前端开发 搜索推荐
前端算法之归并排序
前端算法之归并排序
12 0
|
3天前
|
缓存 算法 前端开发
前端开发者必知的缓存淘汰策略:LRU算法解析与实践
前端开发者必知的缓存淘汰策略:LRU算法解析与实践
|
5天前
|
算法 前端开发
前端算法之基数排序
前端算法之基数排序
11 1
|
5天前
|
算法 前端开发 搜索推荐
前端算法之桶排序
前端算法之桶排序
7 1
|
5天前
|
存储 算法 前端开发
前端算法之计数排序
前端算法之计数排序
12 1
|
5天前
|
算法 前端开发 搜索推荐
前端算法之希尔排序
前端算法之希尔排序
4 0
|
5天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。