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


上一篇:JavaScript效果:提升用户体验与网站交互性的强大工具

下一篇:JavaScript 特效:让你的网站栩栩如生