🤞 点击可跳转个人主页
🐱🏍发现的一个宝藏网站
😁💋给兄弟们安利一个最近发现的很好刷题学习网站,上面包含了很多东西,有面试相关的题目,各厂的大题,还有学习的知识点,甚至还有专项练习 ,是一个很值得我们去练习刷题的好网站点击我就可以到哦
目录
首先第一步,我们先看一下什么是冒泡排序
所谓冒泡排序就是将一个数组中的元素按照你代码逻辑是从小到大,还是从大到小来排列,两两之之间依此进行排序比较 ,大的放在后面,在和后面的继续比较
第二步:代码演示,先上框架
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
</script>
</body>
</html>
第三步:先定义一个数组
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var sex = [9, 55, 2, 12, 22, 5]
</script>
</body>
</html>
因为是两两之间进行排序,所以如果循环的话,那么循环次数是不是应该就是数组的长度-1,
第四步:第一层循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var sex = [9, 55, 2, 12, 22, 5]
for (var i = 0; i < sex.length - 1; i++) {
}
}
</script>
</body>
</html>
这里的i要从0或1开始都可以,他控制的只是循环排序次数,里面的for循环必须是0开始,因为数组下标是0开始
第五步:内层for循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var sex = [9, 55, 2, 12, 22, 5]
for (var i = 0; i < sex.length - 1; i++) {
for (var j = 0; j < sex.length - 1; j++) {
}
}
</script>
</body>
</html>
内层for循环的话也是一样的判断条件。只不过这里的话可以优化一下代码执行次数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var sex = [9, 55, 2, 12, 22, 5]
for (var i = 0; i < sex.length - 1; i++) {
for (var j = 0; j < sex.length - 1-i; j++) {
}
}console.log(sex);
</script>
</body>
</html>
第六步:进行判断
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var sex = [9, 55, 2, 12, 22, 5]
for (var i = 0; i < sex.length - 1; i++) {
for (var j = 0; j < sex.length - 1; j++) {
if (sex[j] > sex[j + 1]) {
}
}
}
</script>
</body>
</html>
这里我们添加一个判断条件,如果说第一个数大于第二个数,那么我们就把第一个数与第二个数进行一个交换,这里的话就要用到之前说的交换变量
第七步:交换变量
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var sex = [9, 55, 2, 12, 22, 5]
for (var i = 0; i < sex.length - 1; i++) {
for (var j = 0; j < sex.length - 1; j++) {
if (sex[j] > sex[j + 1]) {
var temp = sex[j + 1]
sex[j + 1] = sex[j]
sex[j] = temp
}
}
}
</script>
</body>
</html>
这样的话我们就实现了效果,接下面我们输出一下看看
最后:输出
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var sex = [9, 55, 2, 12, 22, 5]
for (var i = 0; i < sex.length - 1; i++) {
for (var j = 0; j < sex.length - 1; j++) {
if (sex[j] > sex[j + 1]) {
var temp = sex[j + 1]
sex[j + 1] = sex[j]
sex[j] = temp
}
}
}console.log(sex);
</script>
</body>
</html>