javascript中的排序算法
导读:JavaScript中的排序算法可以说是基础中的基础,因为对于任何程序员而言,排序算法都是必须掌握的知识点,而JavaScript并不例外。JavaScript中的排序算法通常分为交换排序、选择排序和插入排序三种,下面我们来一一介绍。交换排...
JavaScript中的排序算法可以说是基础中的基础,因为对于任何程序员而言,排序算法都是必须掌握的知识点,而JavaScript并不例外。JavaScript中的排序算法通常分为交换排序、选择排序和插入排序三种,下面我们来一一介绍。
交换排序
交换排序是一种通过交换数组元素来进行排序的算法,通常有冒泡排序和快速排序。冒泡排序算法会依次比较相邻两个数的大小,如果前面的数比后面的数大,则交换两个数的位置,一直重复这个过程,直到数组有序。下面是冒泡排序的代码实现
function bubbleSort(arr) {
let len = arr.length;
for (let i = 0;
i len - 1;
i++) {
for (let j = 0;
j len - i - 1;
j++) {
if (arr[j] >
arr[j + 1]) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
快速排序算法则是通过分治的策略,将数组分成两部分,一部分小于基准数,一部分大于基准数,并递归进行排序,下面是快速排序的代码实现
function quickSort(arr) {
if (arr.length = 1) {
return arr;
}
const pivotIndex = Math.floor(arr.length / 2);
const pivot = arr.splice(pivotIndex, 1)[0];
const left = [];
const right = [];
for (let i = 0;
i arr.length;
i++) {
if (arr[i] pivot) {
left.push(arr[i]);
}
else {
right.push(arr[i]);
}
}
return quickSort(left).concat([pivot], quickSort(right));
}
选择排序
选择排序是一种通过选择最小的元素并将其放到已排好序的部分的末尾来进行排序的算法,通常有选择排序和堆排序,下面是选择排序的代码实现
function selectionSort(arr) {
let len = arr.length;
let minIndex, temp;
for (let i = 0;
i len - 1;
i++) {
minIndex = i;
for (let j = i + 1;
j len;
j++) {
if (arr[j] arr[minIndex]) {
minIndex = j;
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}
插入排序
插入排序是一种通过将数组元素插入到已排好序的部分的适当位置来进行排序的算法,通常有插入排序和希尔排序,下面是插入排序的代码实现
function insertionSort(arr) {
let len = arr.length;
let preIndex, current;
for (let i = 1;
i len;
i++) {
preIndex = i - 1;
current = arr[i];
while (preIndex >
= 0 &
&
arr[preIndex] >
current) {
arr[preIndex + 1] = arr[preIndex];
preIndex--;
}
arr[preIndex + 1] = current;
}
return arr;
}
以上就是JavaScript中三种常见的排序算法,它们分别适用于不同的场景,需要根据具体情况进行选择和使用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: javascript中的排序算法
本文地址: https://pptw.com/jishu/560430.html
