大家好,我是Emo_TT。今天我来给大家介绍一下JavaScript中几个常用的数组排序方法。
首先是乱序排序,默认从小到大。这个方法是用Math.random()生成随机数来进行排序的,代码如下:
/**
* 乱序排序 默认从小到大
*
* @method luanXu 数组方法
* @param {Array} arr 传递的数组
*/
const luanXu = (arr) => {
arr.sort((a, b) => {
return 0.5 - Math.random();
});
};
接下来是冒泡排序,默认从小到大。这个排序方法是通过比较相邻两个元素的大小,将大的元素交换到后面,最终得到有序的数组。代码如下:
/**
* 冒泡排序 默认从小到大
*
* @method maoPao 数组方法
* @param {Array} arr 传递的数组
* @param {String} type 传递的类型默认从小到大不传值,从大到小传递"max"
*/
const maoPao = (arr, type) => {
let temp;
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
if (type == "max") {
return arr.reverse();
} else {
return arr;
}
};
最后是快速排序,默认从小到大。快速排序是一种分治的排序算法,将原始数组分成左右两个子数组,再对子数组进行排序,最终将左右两个子数组合并起来。代码如下:
/**
* 快速排序 从小到大排序
*
* @method quickSort 数组方法
* @param {Array} arr 传递的数组
*/
const quickSort = (arr) => {
if (arr.length <= 1) return arr;
let pivotIndex = Math.floor(arr.length / 2),
pivot = arr.splice(pivotIndex, 1)[0],
left = [],
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));
};
以上就是JavaScript中三种常用的数组排序方法,希望对大家有所帮助。如果有更好的排序方法,欢迎在评论区留言探讨。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/144779.html