分别用冒泡排序和选择排序,对[3,1,2,4,5,19,2,7]这个数组进行排序,并在控制台上打印结果 使用js实现
时间: 2023-10-24 14:04:51 浏览: 81
好的,这里是使用 JavaScript 实现冒泡排序和选择排序,对数组 [3,1,2,4,5,19,2,7] 进行排序,并打印结果:
```javascript
// 冒泡排序
function bubbleSort(arr) {
const len = arr.length;
for (let i = 0; i < len - 1; i++) {
for (let j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
// 选择排序
function selectionSort(arr) {
const len = arr.length;
for (let i = 0; i < len - 1; i++) {
let minIndex = i;
for (let j = i + 1; j < len; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex !== i) {
[arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
}
}
return arr;
}
// 测试
const arr = [3, 1, 2, 4, 5, 19, 2, 7];
console.log("原数组:", arr);
console.log("冒泡排序后:", bubbleSort([...arr]));
console.log("选择排序后:", selectionSort([...arr]));
```
代码解析:
首先,我们定义了两个函数 `bubbleSort` 和 `selectionSort`,分别代表冒泡排序和选择排序。
在冒泡排序函数中,我们使用两层循环来遍历数组,将相邻的两个元素进行比较,如果前面的元素比后面的元素大,则交换它们的位置。通过多次遍历,将最大的元素逐渐“冒泡”到数组的末尾,直到整个数组都有序为止。
在选择排序函数中,我们同样使用两层循环来遍历数组,每次找到未排序部分中最小的元素,并将它与未排序部分的第一个元素交换位置,直到整个数组都有序为止。
最后,我们在控制台上打印原数组和排序后的结果,分别使用 `bubbleSort` 和 `selectionSort` 函数对原数组进行排序。
阅读全文