JavaScript 排序:全面的指南300
排序算法是计算机科学中最重要的算法之一。它们用于将数据集中的元素按特定顺序排列,例如升序、降序或自定义排序。JavaScript 中提供了多种排序算法,每种算法都有其自身的优势和劣势。
1. 冒泡排序
冒泡排序是一种简单但效率较低的方法,它通过不断比较相邻元素并交换它们的顺序来排序一个数组。这个过程重复进行,直到数组中的所有元素都按顺序排列。冒泡排序的时间复杂度为 O(n^2),其中 n 是数组中的元素数量。
function bubbleSort(arr) {
for (let i = 0; i < ; i++) {
for (let j = 0; j < - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
2. 选择排序
选择排序通过找到数组中未排序部分中的最小元素,然后将其与第一个未排序元素交换来工作。这个过程重复进行,直到数组中的所有元素都按顺序排列。选择排序的时间复杂度也为 O(n^2)。
function selectionSort(arr) {
for (let i = 0; i < - 1; i++) {
let minIndex = i;
for (let j = i + 1; j < ; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
[arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
}
return arr;
}
3. 插入排序
插入排序通过将每个元素插入到它应该在的子数组中,将数组逐步排序。它首先将第一个元素视为一个已排序的子数组,然后遍历剩余的元素并将它们插入到相应的子数组中。插入排序的时间复杂度为 O(n^2),对于部分排序的数组更有效。
function insertionSort(arr) {
for (let i = 1; i < ; i++) {
let current = arr[i];
let j = i - 1;
while (j >= 0 && current < arr[j]) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = current;
}
return arr;
}
4. 快速排序
快速排序是一种分治算法,它通过将数组分成两个子数组(一个比枢纽元素小,一个比枢纽元素大)来工作。然后递归地对这两个子数组进行快速排序,然后将它们合并成一个已排序的数组。快速排序的时间复杂度为 O(n log n),使其对于大型数据集非常高效。
function quickSort(arr) {
if (
2024-11-29

Lua脚本语言在AIX系统上的应用与兼容性详解
https://jb123.cn/jiaobenyuyan/59177.html

JavaScript GitHub 资源宝藏:从入门到进阶的学习与应用指南
https://jb123.cn/javascript/59176.html

Perl高效定位坐标:地理位置、图像像素及文本位置处理
https://jb123.cn/perl/59175.html

JavaScript Tag详解:深入理解标签与HTML交互
https://jb123.cn/javascript/59174.html

Python编程语言及相关软件详解
https://jb123.cn/python/59173.html
热门文章

JavaScript (JS) 中的 JSF (JavaServer Faces)
https://jb123.cn/javascript/25790.html

JavaScript 枚举:全面指南
https://jb123.cn/javascript/24141.html

JavaScript 逻辑与:学习布尔表达式的基础
https://jb123.cn/javascript/20993.html

JavaScript 中保留小数的技巧
https://jb123.cn/javascript/18603.html

JavaScript 调试神器:步步掌握开发调试技巧
https://jb123.cn/javascript/4718.html