插入排序史上最经典的实现方式

Posted 我想月薪过万

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序史上最经典的实现方式相关的知识,希望对你有一定的参考价值。

插入排序的原理

插入排序的代码实现

  • 循环法
let arrayData = [44, 3, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];

let insertSort = (arr) => 
    //对于第0个元素 只有一个元素,所以没有比的必要,我们就从第1个元素开始
    for (let i = 1; i < arr.length; i++) 
        
        //取出遍历到的元素
        let temp = arr[i];
        let j;
        //与之前面的元素对比
        for (j = i - 1; j >= 0; j--) 
            //找到比其小的就退出循环
            if (temp >= arr[j]) break;
            arr[j + 1] = arr[j];
        

        arr[j + 1] = temp;
    


insertSort(arrayData);
console.log(arrayData);
  • 递归法
let arrayData = [44, 3, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48];

let insertSort = (arr, index) => 

    if (index >= arr.length) return;

    let temp = arr[index];
    let i;
    for (i = index - 1; i >= 0; i--) 
        if (arr[i] <= temp) break;
        arr[i + 1] = arr[i];
    
    arr[i + 1] = temp;

    insertSort(arr, ++index);


insertSort(arrayData, 1);
console.log(arrayData);
  • 效果展示

 

以上是关于插入排序史上最经典的实现方式的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序史上最经典的实现

快速排序算法史上最经典实现

sort函数详解(史上最完整QAQ)

史上最易理解的快速排序原理详解以及Arrays.sort方法

史上最清晰的红黑树讲解(上)

史上最清晰的红黑树讲解(上)