代码拉取完成,页面将自动刷新
<!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>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。