技术文摘
用 JavaScript 实现插入排序对数字数组升序排序
用 JavaScript 实现插入排序对数字数组升序排序
在编程领域,排序算法是一项基础且至关重要的技能。插入排序作为一种简单直观的排序算法,特别适合于数据量较小或者部分有序的数据集合。本文将详细介绍如何使用 JavaScript 实现插入排序对数字数组进行升序排序。
插入排序的基本思想是将数组分为已排序和未排序两部分。初始时,已排序部分仅包含数组的第一个元素,其余部分为未排序部分。接着,从未排序部分选取元素,将其插入到已排序部分的合适位置,直到整个数组都被排序。
下面是用 JavaScript 实现插入排序的代码:
function insertionSort(arr) {
const n = arr.length;
for (let i = 1; i < n; i++) {
let key = arr[i];
let j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
return arr;
}
在这段代码中,外层循环从数组的第二个元素开始,每次迭代处理一个未排序的元素。内层循环则在已排序的元素中寻找合适的插入位置。如果当前已排序元素大于要插入的元素,就将该元素后移一位,为插入元素腾出空间。当找到合适位置或者内层循环结束时,将待插入元素插入到正确的位置。
使用时,只需调用这个函数并传入需要排序的数字数组即可。例如:
let numbers = [5, 3, 8, 2, 9, 1];
let sortedNumbers = insertionSort(numbers);
console.log(sortedNumbers);
这段代码定义了一个包含多个数字的数组,调用插入排序函数后,输出排序后的数组。
插入排序的时间复杂度在最坏情况下为 O(n²),最好情况下为 O(n),空间复杂度为 O(1)。虽然它的效率不如一些高级排序算法,但因其简单易懂、代码实现简洁,在某些特定场景下仍然非常实用。通过掌握插入排序,开发者可以更好地理解排序算法的基本原理,并为学习更复杂的算法打下坚实基础。
TAGS: JavaScript 插入排序 升序排序 数字数组
- Vue项目自动打开浏览器的配置方法
- 苹果浏览器网页背景图像出现色差的原因
- 按相邻数据对后台异步返回数据排序的方法
- 小程序多语言环境自动切换,怎样精准获取并应用用户语言
- 网页超出设计稿高度的处理方法
- 按钮点击后 `:focus` 伪类效果消失是否属于错误
- 异步获取的数据怎样进行多字段排序
- 苹果浏览器上背景图存在色差问题的原因
- El-Table合并单元格逻辑失效问题的解决方法
- for循环中onclick()事件的i值为何始终是循环结束后的结果
- Emmet语法中*n无效的原因
- HTML DOM 如何输出列表中每行的姓名与年龄
- 苹果电脑浏览器背景图亮度存差异,网页上下部背景图为何色差明显
- 构建模拟:从零起步的实时交易模拟器
- for 循环与 onclick 事件里循环变量 i 为何始终为 3