• 在JavaScript中数字的冒泡排序的讲解


     

    目录

    首先第一步,我们先看一下什么是冒泡排序 

    第二步:代码演示,先上框架

    第三步:先定义一个数组

    第四步:第一层循环

     第五步:内层for循环

     第六步:进行判断

     第七步:交换变量

     最后:输出


     

    首先第一步,我们先看一下什么是冒泡排序 

    所谓冒泡排序就是将一个数组中的元素按照你代码逻辑是从小到大,还是从大到小来排列,两两之之间依此进行排序比较 ,大的放在后面,在和后面的继续比较

    第二步:代码演示,先上框架

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <script>
    11. script>
    12. body>
    13. html>

    第三步:先定义一个数组

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <script>
    11. var sex = [9, 55, 2, 12, 22, 5]
    12. script>
    13. body>
    14. html>

    因为是两两之间进行排序,所以如果循环的话,那么循环次数是不是应该就是数组的长度-1,

    第四步:第一层循环

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <script>
    11. var sex = [9, 55, 2, 12, 22, 5]
    12. for (var i = 0; i < sex.length - 1; i++) {
    13. }
    14. }
    15. script>
    16. body>
    17. html>

     这里的i要从0或1开始都可以,他控制的只是循环排序次数,里面的for循环必须是0开始,因为数组下标是0开始

     第五步:内层for循环

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <script>
    11. var sex = [9, 55, 2, 12, 22, 5]
    12. for (var i = 0; i < sex.length - 1; i++) {
    13. for (var j = 0; j < sex.length - 1; j++) {
    14. }
    15. }
    16. script>
    17. body>
    18. html>

    内层for循环的话也是一样的判断条件。只不过这里的话可以优化一下代码执行次数

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <script>
    11. var sex = [9, 55, 2, 12, 22, 5]
    12. for (var i = 0; i < sex.length - 1; i++) {
    13. for (var j = 0; j < sex.length - 1-i; j++) {
    14. }
    15. }console.log(sex);
    16. script>
    17. body>
    18. html>

     第六步:进行判断

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <script>
    11. var sex = [9, 55, 2, 12, 22, 5]
    12. for (var i = 0; i < sex.length - 1; i++) {
    13. for (var j = 0; j < sex.length - 1; j++) {
    14. if (sex[j] > sex[j + 1]) {
    15. }
    16. }
    17. }
    18. script>
    19. body>
    20. html>

    这里我们添加一个判断条件,如果说第一个数大于第二个数,那么我们就把第一个数与第二个数进行一个交换,这里的话就要用到之前说的交换变量

    第七步:交换变量

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <script>
    11. var sex = [9, 55, 2, 12, 22, 5]
    12. for (var i = 0; i < sex.length - 1; i++) {
    13. for (var j = 0; j < sex.length - 1; j++) {
    14. if (sex[j] > sex[j + 1]) {
    15. var temp = sex[j + 1]
    16. sex[j + 1] = sex[j]
    17. sex[j] = temp
    18. }
    19. }
    20. }
    21. script>
    22. body>
    23. html>

     这样的话我们就实现了效果,接下面我们输出一下看看

    最后:输出

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. head>
    9. <body>
    10. <script>
    11. var sex = [9, 55, 2, 12, 22, 5]
    12. for (var i = 0; i < sex.length - 1; i++) {
    13. for (var j = 0; j < sex.length - 1; j++) {
    14. if (sex[j] > sex[j + 1]) {
    15. var temp = sex[j + 1]
    16. sex[j + 1] = sex[j]
    17. sex[j] = temp
    18. }
    19. }
    20. }console.log(sex);
    21. script>
    22. body>
    23. html>

     

     

  • 相关阅读:
    Java中的读写锁ReentrantReadWriteLock详解,存在一个小缺陷
    腾讯云死磕政务云?
    D - Range = √Sum 构造,F - Strange Memory 树上启发式合并
    通配符 SSL/TLS 证书
    DDPM(Denoising Diffusion Probabilistic Models)扩散模型简述
    Go语言中结构体struct与字节数组[]byte的相互转换
    力扣第1047题 删除字符串中的所有相邻重复项 c++string stack巧解
    Matlab实现Holland风场
    代码随想录算法训练营第五十八天丨 动态规划part18
    康力源体育IPO过会:年营收7亿 衡墩建控制98%股权
  • 原文地址:https://blog.csdn.net/tea_tea_/article/details/126281120