JS: 定义一个数组,实现数组的冒泡排序(10分) 1、正确使用循环方法(5分) 2、正确返回数组排序结果(5分)
时间: 2024-09-29 15:03:58 浏览: 18
在JavaScript中,你可以使用经典的冒泡排序算法来对数组进行排序。这是一个简单的步骤示例:
```javascript
// 定义一个数组
let arr = [9, 7, 5, 11, 2, 14, 3];
// 定义冒泡排序函数
function bubbleSort(arr) {
let 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]]; // ES6语法的解构赋值
}
}
}
// 返回已排序的数组
return arr;
}
// 调用并打印排序后的数组
console.log(bubbleSort(arr));
相关问题
js定义一个函数,传入一个数组实现冒泡排序
以下是使用 JavaScript 实现冒泡排序的函数示例:
```javascript
function bubbleSort(arr) {
const length = arr.length;
for (let i = 0; i < length - 1; i++) {
for (let j = 0; j < length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换位置
const temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
// 示例用法
const array = [64, 34, 25, 12, 22, 11, 90];
const sortedArray = bubbleSort(array);
console.log(sortedArray);
```
这段代码定义了一个名为 `bubbleSort` 的函数,该函数接受一个数组作为参数,并使用冒泡排序算法对数组进行排序。冒泡排序是一种简单的排序算法,它通过多次遍历数组,比较相邻元素的大小并交换位置,将较大的元素逐渐移动到数组的末尾。
在函数内部,使用两个嵌套的循环来遍历数组。外层循环控制遍历的次数,内层循环用于比较相邻元素并进行交换。如果当前元素大于下一个元素,则交换它们的位置。
最终,函数返回排序后的数组。在示例用法中,我们传入一个包含多个数字的数组,然后调用 `bubbleSort` 函数对数组进行排序,并将排序后的结果打印到控制台上。
分别用冒泡排序和选择排序,对[3,1,2,4,5,19,2,7]这个数组进行排序,并在控制台上打印结果 使用js实现
好的,这里是使用 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` 函数对原数组进行排序。