插入排序

简介: 概念:插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

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

插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。


*算法描述:

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

从第一个元素开始,该元素可以认为已经被排序;

取出下一个元素,在已经排序的元素序列中从后向前扫描;

如果该元素(已排序)大于新元素,将该元素移到下一位置;

重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;

将新元素插入到该位置后;

重复步骤2~5。

        if (arr == null || arr.length < 2) {
            return arr;
        }
        for (let i = 1; i < arr.length; i++) {
            for (let j = i - 1; j >= 0 && arr[j] > arr[j + 1]; j--) {
                let temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
        return arr;
    }
    var arr = [3, 4, 2, 1, 6, 7, 8, 4];
    console.log(arr); // [3, 4, 2, 1, 6, 7, 8, 4]
    insertionSort(arr);
    console.log(arr); // [1, 2, 3, 4, 4, 6, 7, 8]
相关文章
|
Java 编译器
【JAVA】我们常常谈到的方法是指什么?
【JAVA】我们常常谈到的方法是指什么?
221 0
|
存储 编译器 C语言
【C语言】自定义数据类型:枚举+共用体
【C语言】自定义数据类型:枚举+共用体
96 0
|
存储 算法 编译器
【C++初阶】11. list的使用及模拟实现
【C++初阶】11. list的使用及模拟实现
155 3
|
网络协议 Ubuntu Linux
使用VSCode SSH公网远程连接本地服务器开发 - cpolar内网穿透
使用VSCode SSH公网远程连接本地服务器开发 - cpolar内网穿透
1294 0
|
JSON 小程序 前端开发
Golang slice的几种用法
最近生活风平浪静。工作时间还是比较忙,业余时间写文章的频率不高,本来想把关于slice的都写完,但后来发现太多了,于是打算拆成三篇来写。 前段时间花了大量的时间在弄小程序,本来都发布成功了,但后来某一次小程序升级说涉及交友服务,需要改类目,而交友类目需要电信增值服务的证,这个证比较难搞,所以可能后面打算终止这个小程序了,过段时间可能会把代码开源吧。
970 0
|
存储 前端开发 对象存储
如何基于云存储网关SMB共享搭建FileZilla FTP server
本文介绍在windows 环境下,如何利用云存储网关提供的SMB共享,使用FileZilla Server搭建FTP服务器来访问对象存储(OSS)中的资源。
2881 0
如何基于云存储网关SMB共享搭建FileZilla FTP server
|
存储 缓存 NoSQL
Redis持久化机制:AOF日志
说到关系型数据库,最常想到的就是MySQL、oracle了;说到非关系型数据库,最常想到的就是redis、MongoDB了。而Redis因其速度快的优势,广泛应用在各种缓存场景中。 但redis数据是存储在内存中,所以数据的持久化就显得尤为重要,我们都知道,Redis有两大持久化机制,分别是 AOF日志 和 RDB快照,今天就先来说说AOF日志的重要知识吧。
304 0
|
安全
阿里云推出商标交易平台「商标优选」 商标即买即用
“商标优选服务”是为阿里云用户提供的,在线挑选闲置商标,发起商标资源受让需求,完成商标专用权转移的全流程服务。
10304 0
阿里云推出商标交易平台「商标优选」 商标即买即用