算法笔记系列:插入排序

Posted JavaScript开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法笔记系列:插入排序相关的知识,希望对你有一定的参考价值。

插入排序

实现原理通过遍历比较相应数据来构建有序序列,对于其中未排序的元素,将会被从后至地与已排序列表中的元素进行依次比较并移动,当找到相应目标位置后被插入。以此类推,直到所有元素均排序完毕。

实现1

function insertionSort(arr) { for (var i = 0; i < arr.length; i++) { for (var j = i; j - 1 >= 0; j--) { if (arr[j] >= arr[j - 1]) { break; }
swap(arr, j, j - 1); } }}
function swap(arr, i, j) { var t = arr[i]; arr[i] = arr[j]; arr[j] = t;}

实现2

function insertionSort(arr) { for (var i = 0; i < arr.length; i++) { var curr = arr[i]; var j;
for (j = i; j - 1 >= 0 && curr < arr[j - 1]; j--) { arr[j] = arr[j - 1]; }
arr[j] = curr; }}

注:代码仅演示整体思路,有局限,具体细节可调整可优化。


以上是关于算法笔记系列:插入排序的主要内容,如果未能解决你的问题,请参考以下文章

《算法》笔记 3 - 选择排序插入排序希尔排序

选考VB算法专题系列讲座9插入排序算法

算法笔记 排序算法完整介绍及C++代码实现 HERODING的算法之路

排序算法系列1--简单排序(选择,冒泡,直接插入)

插入排序算法导学案

图解算法系列之插入排序(Low版)