请举八个例子说明js如何将数组进行从小到大的排序
时间: 2024-05-14 21:11:45 浏览: 40
数组从小到大排列 方法
Sure, 我可以回答这个问题。以下是js如何将数组进行从小到大的排序的八个例子:
1. 使用sort函数:
```
const arr = [3,1,4,2,5];
arr.sort((a, b) => a - b);
console.log(arr); // Output: [1, 2, 3, 4, 5]
```
2. 如果要求从大到小排序,可以改变比较函数:
```
const arr = [3,1,4,2,5];
arr.sort((a, b) => b - a);
console.log(arr); // Output: [5, 4, 3, 2, 1]
```
3. 使用Math.min函数:
```
const arr = [3,1,4,2,5];
const sorted = [];
while(arr.length) {
const min = Math.min(...arr);
sorted.push(min);
arr.splice(arr.indexOf(min), 1);
}
console.log(sorted); // Output: [1, 2, 3, 4, 5]
```
4. 使用for循环进行选择排序:
```
const arr = [3,1,4,2,5];
for(let i=0; i<arr.length; i++) {
let minIndex = i;
for(let j=i+1; j<arr.length; j++) {
if(arr[j] < arr[minIndex]) {
minIndex = j;
}
}
[arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
}
console.log(arr); // Output: [1, 2, 3, 4, 5]
```
5. 使用归并排序:
```
function merge(left, right) {
const result = [];
while(left.length && right.length) {
if(left[0] < right[0]) {
result.push(left.shift());
} else {
result.push(right.shift());
}
}
return result.concat(left, right);
}
function mergeSort(arr) {
if(arr.length === 1) {
return arr;
}
const mid = Math.floor(arr.length / 2);
const left = arr.slice(0, mid);
const right = arr.slice(mid);
return merge(mergeSort(left), mergeSort(right));
}
const arr = [3,1,4,2,5];
console.log(mergeSort(arr)); // Output: [1, 2, 3, 4, 5]
```
6. 使用冒泡排序:
```
const arr = [3,1,4,2,5];
for(let i=0; i<arr.length-1; i++) {
for(let j=0; j<arr.length-i-1; j++) {
if(arr[j] > arr[j+1]) {
[arr[j], arr[j+1]] = [arr[j+1], arr[j]];
}
}
}
console.log(arr); // Output: [1, 2, 3, 4, 5]
```
7. 使用插入排序:
```
const arr = [3,1,4,2,5];
for(let i=1; i<arr.length; i++) {
let j = i - 1;
let temp = arr[i];
while(j >= 0 && arr[j] > temp) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = temp;
}
console.log(arr); // Output: [1, 2, 3, 4, 5]
```
8. 使用快速排序:
```
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), pivot, ...quickSort(right)];
}
const arr = [3,1,4,2,5];
console.log(quickSort(arr)); // Output: [1, 2, 3, 4, 5]
```
希望这有帮助!
阅读全文