JavaScript实现经典排序算法:冒泡排序与选择排序
28 浏览量
更新于2024-08-31
收藏 38KB PDF 举报
"本文介绍了几种经典排序算法的JavaScript实现,包括冒泡排序和选择排序,提供了详细的代码示例。"
在计算机科学中,排序算法是用于对数据序列进行重新排列,使其按照特定顺序(如升序或降序)排列的算法。在JS中,我们可以实现这些经典的排序算法来处理数组数据。以下是两种常见的排序算法的JS实现:
**1. 冒泡排序(Bubble Sort)**
冒泡排序是一种简单的排序算法,通过重复遍历数组并比较相邻元素,将较大的元素逐步“冒”到数组的末尾。其基本步骤如下:
- 遍历数组的每一个元素,从第一个到最后一个。
- 对每一对相邻元素做同样的工作,比较它们的大小,如果顺序错误就交换它们。
- 这个过程会持续到数组的最后,最后一个元素会被正确地放在数组的末尾。
- 重复以上步骤,但每次减少最后一个已排序元素的位置,直到整个数组有序。
以下是冒泡排序的JavaScript实现:
```javascript
function BubbleSort(array) {
var length = array.length;
for (var i = length - 1; i > 0; i--) { // 用于缩小范围
for (var j = 0; j < i; j++) { // 在范围内进行冒泡,在此范围内最大的一个将冒到最后面
if (array[j] > array[j + 1]) {
var temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
console.log(array); // 打印中间过程
console.log("-----------------------------");
}
return array;
}
var arr = [10, 9, 8, 7, 7, 6, 5, 11, 3];
var result = BubbleSort(arr);
console.log(result);
```
**2. 选择排序(Selection Sort)**
选择排序的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。
- 从待排序的数组中找到最小元素,并将其与第一个元素交换位置。
- 继续在剩余元素中寻找最小元素,与第二个元素交换。
- 重复以上步骤,直到所有元素排序完毕。
以下是选择排序的JavaScript实现:
```javascript
function SelectionSort(array) {
var length = array.length;
for (var i = 0; i < length; i++) { // 缩小选择的范围
var min = array[i]; // 假定范围内第一个为最小值
var index = i; // 记录最小值的下标
for (var j = i + 1; j < length; j++) { // 查找范围内的最小元素
if (array[j] < min) {
min = array[j];
index = j;
}
}
// 将找到的最小元素与当前位置的元素交换
if (index !== i) {
var temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
return array;
}
var arr = [10, 9, 8, 7, 7, 6, 5, 11, 3];
var result = SelectionSort(arr);
console.log(result);
```
这两种排序算法各有特点:冒泡排序的时间复杂度在最坏情况下是O(n²),但对部分已经排序的数组有较好的效率;选择排序的时间复杂度始终保持在O(n²),但它可以在任何位置找到最小/最大元素,因此在某些情况下可能更快。在实际应用中,通常会使用更高效的排序算法,如快速排序、归并排序等。
1195 浏览量
2020-10-23 上传
121 浏览量
218 浏览量
168 浏览量
148 浏览量
114 浏览量
weixin_38592405
- 粉丝: 6
- 资源: 868