加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
冒泡排序.html 1.44 KB
一键复制 编辑 原始数据 按行查看 历史
shixd 提交于 2019-06-25 11:18 . 冒泡排序
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>冒泡排序</title>
</head>
<body>
</body>
</html>
<script>
/*
* 冒泡排序两两比较,互换位置
* 每次循环最大的数移动到最后,所以每次循环之后可以少比较一轮外循环
* 还有一种情况就是,如果数组本来就是有序的,则可以进行判断跳出循环得到优化
* 正序和逆序可以根据条件进行自行切换
* */
const arr = [ 22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70 ]
// for循环
// function bubbleSort (arr) {
// for (let i = 0; i < arr.length; i++) {
// for (let j = 0; j < arr.length-1-i; j++) {
// if (arr[j] > arr[j+1]) {
// [ arr[j], arr[j+1] ] = [ arr[j+1], arr[j] ]
// }
// }
// console.log('arr:', arr)
// }
// return arr
// }
/*
* while 条件语句不能写arr.length,要先赋值
* 比如: while (arr.length--)是错误的,let len = arr.length while (len--)是正确的
* */
function bubbleSort (arr) {
let isOrder = true
let len = arr.length
while (len--) {
for (let i = 0; i < arr.length; i++) {
if (arr[i] > arr[i+1]) {
[ arr[i], arr[i+1] ] = [ arr[i+1], arr[i] ]
isOrder = false
}
}
// 有序的数组直接返回
if (isOrder) {
return arr
}
}
return arr
}
console.log('bubbleSort(arr):', bubbleSort(arr))
</script>
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化