本文详细解析 JavaScript 中两种常见排序算法:快速排序与冒泡排序。快速排序通过选取基准值将数组递归划分为左右两部分,实现高效排序;冒泡排序则通过相邻元素两两比较与交换,逐步将最大值移至末尾。文章提供了完整的 JS 代码实现,帮助开发者理解算法核心逻辑与具体编码技巧。
快速排序算法原理与实现
1.快速排序思想:
1.1 选取数组正中间的元素作为基准值。
1.2 遍历数组,将小于基准值的元素放入 left 数组,大于基准值的元素放入 right 数组。
1.3 对 left 和 right 数组递归执行上述步骤,直至数组长度小于等于1。
具体实现代码如下:
function quickSort(arr) {
if (arr.length <=1 ){
return arr;
}
var middleIndex = Math.floor(arr.length / 2);
var left = [];
var right = [];
var middle = arr.splice(middleIndex,1)[0];
for (var i = 0; i < arr.length; i++) {
if ( arr[i] > middle) {
right.push(arr[i]);
} else {
left.push(arr[i]);
}
}
return quickSort(left).concat(middle,quickSort(right));
}
冒泡排序算法原理与实现
2. 冒泡排序思想:
2.1 比较相邻的两个元素,如果前一个大于后一个,则交换它们的位置。
2.2 重复遍历数组,每轮遍历将当前未排序部分的最大值“冒泡”至末尾。
具体实现代码如下:
function bubbleSort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length -1 -i; j++) {
if( arr[j] > arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本站!