从大到小排序-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第3章-课后作业)

时间:2022-01-10 01:17:37

【案例3-3】按从大到小排序

一、案例描述

  1. 考核知识点

冒泡排序

  1. 练习目标
  • 掌握冒泡排序的原理。
  • 掌握for循环的应用。
  1. 需求分析

给出一组数,按照从大到小进行冒泡排序,从大到小序列输出。

  1. 案例分析
  1. 效果如图3-3所示。

从大到小排序-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第3章-课后作业)

 

  1. 从大到小排序

  1. 具体实现步骤如下:
  1. 定义数组arr,里边存放8个元素。
  2. 采用冒泡排序(共循环8-1次)
  3. 第一轮是比较7次 结果:(70 67 49 35 59 98 100 20)。
  4. 第二轮是比较6次 结果:(70 67 49 59 98 100 35 20)。
  5. 第三轮是比较5次 结果:(70 67 59 98 100 49 35 20)。
  6. 第四轮是比较4次 结果:(70 67 98 100 59 49 35 20)。
  7. 第五轮是比较3次 结果:(70 98 100 67 59 49 35 20)。
  8. 第六轮是比较2次 结果:(98 100 70 67 59 49 35 20)。
  9. 第七轮是比较1次 结果:(100 98 70 67 59 49 35 20)。

二、案例实现                                                                           

根据上面的分析,可以通过简单的JavaScript代码来实现这一效果,具体代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>从大到小排序</title>
  6. </head>
  7. <body>
  8.     <script>
  9.     var arr = new Array(70,35,67,4,20,59,98,100);
  10.     var exchange = 0; // 中间交换变量
  11.     // 第一次for用来控制比较的轮数,i代表轮次
  12.     for(var i=1;i < arr.length;i++){
  13.         // 控制每轮比较几次的
  14.         for(var j=0;j < arr.length-i;j++){
  15.             if(arr[j] < arr[j+1]){
  16.                 //实现交换
  17.                 exchange = arr[j];
  18.                 arr[j]=arr[j+1];
  19.                 arr[j+1]=exchange;
  20.             }
  21.         }
  22.     }
  23.     alert(arr)
  24.     alert(arr[0]); // 100 测试数组第一个元素是不是100
  25.     alert(arr[7]); // 20  测试数组最后一个元素是不是20
  26. </script>
  27. </body>
  28. </html>