[数据结构学习笔记23] 插入排序(Insertion Sort)
插入排序(Insertion Sort)
举例
5, 3,1,2,9,7
从第二个数字开始,也就是3开始。数列分为两部分,5,和剩下部分。5称为已排序;3-7称为未排序。这个时候3称为活动数字,我们要做的是,把3放到已排序组中。
3,5 1,2,9,7
1,3,5 2,9,7
1,2,3,5 9,7
1,2,3,5,7 9
1,2,3,5,7,9
代码(javascript)
function insertionSort(input) { let activeNumber; for (let i = 1; i < input.length; i++) { activeNumber = input[i]; for (int j = i - 1; j >= 0; j--) { if (input[j] > activeNumber) { input[j+1] = input[j]; } else { break; } } input[j+1] = activeNumber; } }
插入排序效率也不高。时间复杂度是O(n^2)。它的优点是不需要额外的空间。

浙公网安备 33010602011771号