8.手写JavaScript插入排序

一、核心思路

从第二个元素开始,将每个元素插入到已排序的数组中的适当位置,直到整个数组排序完成。

二、代码实现

javascript 复制代码
let arr = [2,6,8,1,3,9,0,5,4,7]
/**
 * 插入排序 
 * @param {Array} array 传入数组 
 * @return {Array} array 返回选择排序结果 
 */
function insertSort(array){
  for (let i = 0; i < array.length; i++) {
    let curElement = array[i]
    let j = i
    while (j>=0&&curElement<=array[j-1]) {
      array[j] = array[j-1]
      array[j-1] = curElement
      --j
    }
  }
return array
}
console.log(insertSort(arr))
// [
//   0, 1, 2, 3, 4,
//   5, 6, 7, 8, 9
// ]
相关推荐
ccLianLian2 分钟前
数论·快速幂和逆元
数据结构·算法
没头脑的男大4 分钟前
华为题目152乘积最大子数组
算法·华为
牢姐与蒯4 分钟前
vector的实现
数据结构
Yeats_Liao7 分钟前
华为开源自研AI框架昇思MindSpore应用案例:WaveNet实现音乐生成
人工智能·深度学习·算法·机器学习·边缘计算
_饭团9 分钟前
C 语言数据存储全解析:原反补码、大小端与 IEEE 754 浮点数
c语言·数据结构·算法·leetcode·面试·蓝桥杯·学习方法
2401_8732046510 分钟前
C++与Docker集成开发
开发语言·c++·算法
回到原点的码农10 分钟前
TypeScript 与后端开发Node.js
javascript·typescript·node.js
j_xxx404_12 分钟前
力扣--分治(归并排序)算法题II:计算右侧小于当前元素的个数,翻转对(无痛通关困难题)
开发语言·数据结构·c++·算法·leetcode
阿梅要做最快乐的仔13 分钟前
链表环问题:快慢指针的经典应用
数据结构·链表
setmoon21417 分钟前
多协议网络库设计
开发语言·c++·算法