本文详细介绍插入排序算法在 JavaScript 中的实现方式。通过维护一个有序列表,逐步将原数列元素插入正确位置,最终完成排序。虽然平均时间复杂度为平方级,但该算法逻辑简单、易于实现,适合小规模数据排序场景。
插入排序算法概述
插入排序
插入排序的具体实现逻辑如下:
首先创建一个空数组,用于存储已排序的有序序列(以下简称“有序列表”)。
从原始数列中依次取出一个元素,将其插入到“有序列表”的合适位置,以确保“有序列表”始终保持有序状态。
重复第2号步骤,直至原数列为空。
插入排序的平均时间复杂度为 O(n²),属于平方级复杂度,整体效率不高,但实现起来相对容易。该算法核心思想是“逐步扩大成果”,通过不断延长“有序列表”的长度,直到其长度等于原始列表的长度。
(引自百度百科)
JavaScript 代码实现
JavaScript 代码实现
代码如下:
<script type="text/javascript">
var org = [5, 4, 3, 2, 1, 6, 7, 9, 8, 10];
var tempArr = new Array();
for (var i = 0; i < org.length; i++) {
if (i == 0) {
tempArr[0] = org[0]; //把第一个元素放到新序列
} else {
for (var j = 0; j < tempArr.length; j++) {
if (org[i] > tempArr[j]) {
//如果是新序列的最后一个元素,则插入
if (j == tempArr.length - 1) {
tempArr[j + 1] = org[i];
break;
} else {//如果不是最后一个元素,则往后移动
continue;
}
} else {
//移动新序列、然后插入
for (var k = tempArr.length - 1; k >= j; k--) {
tempArr[k + 1] = tempArr[k];
}
tempArr[j] = org[i];
break;
}
}
}
}
alert(tempArr);
</script>