JavaScript写一段快速排序代码
时间: 2023-10-14 19:15:55 浏览: 89
好的,以下是JavaScript实现的快速排序代码:
```javascript
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));
}
const arr = [2, 8, 4, 1, 6, 9, 3, 5, 7];
console.log(quickSort(arr));
```
希望对你有所帮助!现在请您问下一个问题。
相关问题
用javascript 写一段快速排序
好的,以下是 JavaScript 快速排序的代码:
```
function quickSort(arr) {
if (arr.length <= 1) return arr;
let pivotIndex = Math.floor(arr.length / 2);
let pivot = arr[pivotIndex];
let left = [];
let right = [];
for (let i = 0; i < arr.length; i++) {
if (i !== pivotIndex) {
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
}
return [...quickSort(left), pivot, ...quickSort(right)];
}
```
快速排序的基本思路是:
1. 选取数组的第一个元素作为基准值(也可以选取数组的中间或最后一个元素)。
2. 创建两个空数组,分别为左数组和右数组。
3. 遍历数组,将小于基准值的元素加入左数组,大于基准值的元素加入右数组。
4. 将左数组和右数组再分别使用快速排序,直到数组的长度为 1。
5. 最后将左数组、基准值和右数组合并,即可得到有序的数组。
希望这对你有帮助。
写一段js快速排序代码
好的,以下是一段基于快速排序算法的 JavaScript 代码:
```
function quickSort(arr) {
if (arr.length <= 1) {
return arr;
}
let pivotIndex = Math.floor(arr.length / 2);
let pivot = arr[pivotIndex];
let left = [];
let right = [];
for (let i = 0; i < arr.length; i++) {
if (i === pivotIndex) {
continue;
}
if (arr[i] < pivot) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return [...quickSort(left), pivot, ...quickSort(right)];
}
// 示例
const arr = [5, 8, 1, 3, 7, 9, 2];
console.log(quickSort(arr)); // [1, 2, 3, 5, 7, 8, 9]
```
这段代码使用了快速排序算法来对一个数组进行排序。其中,我们首先选择一个“基准”值,然后将数组分为两个部分:所有小于基准值的元素和所有大于等于基准值的元素。然后,递归地对分出来的两个数组进行快速排序,最后将排好序的两个数组和基准值合并起来即可。
阅读全文