js中最优冒泡排序写法
时间: 2023-11-25 14:47:45 浏览: 39
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。最优冒泡排序写法是在原始冒泡排序的基础上进行了优化,减少了不必要的比较和交换次数,从而提高了排序效率。下面是最优冒泡排序的写法:
function bubbleSort(arr) {
var len = arr.length;
for (var i = 0; i < len - 1; i++) {
var flag = true; //设置标志位
for (var j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = false; //如果有交换,标志位设为false
}
}
if (flag) break; //如果没有交换,说明已经排好序,直接退出循环
}
return arr;
}
这个算法的时间复杂度为O(n^2),但是在实际应用中,由于它的常数项比较小,所以它的效率还是比较高的。
相关问题
python 冒泡排序写法
Python 冒泡排序的实现方法如下:
```
def bubble_sort(data):
length = len(data)
for i in range(length - 1):
for j in range(length - i - 1):
if data[j] > data[j + 1]:
data[j], data[j + 1] = data[j + 1], data[j]
return data
```
其中,`data` 是待排序的列表,`length` 是列表的长度。在每一轮排序中,从第一个元素开始,依次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。经过一轮排序后,最大的元素就会被移动到列表的末尾。重复执行这个过程,直到整个列表都被排序好为止。
前端vue冒泡排序写法
以下是前端Vue冒泡排序的实现代码:
```javascript
<template>
<div>
<h2>冒泡排序</h2>
<div>
<span>原始数组:</span>
<span v-for="(item, index) in arr" :key="index">{{item}} </span>
</div>
<div>
<span>排序后数组:</span>
<span v-for="(item, index) in bubbleSort(arr)" :key="index">{{item}} </span>
</div>
</div>
</template>
<script>
export default {
data() {
return {
arr: [5, 9, 3, 1, 2, 8, 4, 7, 6],
};
},
methods: {
bubbleSort(arr) {
let len = arr.length;
for (let i = 0; i < len - 1; i++) {
for (let j = 0; j < len - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
let temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
},
},
};
</script>
```
在上述代码中,定义了一个数组 `arr`,然后使用 `bubbleSort` 方法进行冒泡排序,并将排序后的结果展示在页面上。冒泡排序的核心代码在 `bubbleSort` 方法中,使用两个嵌套的循环,将相邻的两个元素进行比较,如果前一个元素大于后一个元素,则将它们交换位置。最终得到的结果是一个按从小到大排序的数组。
相关推荐
![js](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)