js冒泡排序算法

165 阅读2分钟
冒泡排序算法 

 例子:11,8,9,6,3,20,5 从小到大排序 

 第一轮 

 1)11>8 交换数据 得到:8,11,9,6,3,20,5 

 2)11>9 交换数据 得到:8,9,11,6,3,20,5 

 3)11>6 交换数据 得到:8,9,6,11,3,20,5 

 4)11>3 交换数据 得到:8,9,6,3,11,20,5 

 5)11<20 不交换数据 得到:8,9,6,3,11,20,5 

 6)20>5 交换数据 得到:8,9,10,6,3,5,20 结果:8,9,11,6,3,5,20 

 第二轮 

 1)8<9 不交换数据 得到:8,9,11,6,3,5,20 

 2)9<11 不交换数据 得到:8,9,11,6,3,5,20 

 3)11>6 交换数据 得到:8,9,6,11,3,5,20 

 4)11>3 交换数据 得到:8,9,6,3,11,5,20 

 5)11>5 交换数据 得到:8,9,6,3,5,11,20 结果:8,9,6,3,5,11,20 

 第三轮 

 1)8<9 不交换数据 得到:8,9,6,3,5,11,20 

 2)9>6 交换数据 得到:8,6,9,3,5,11,20 

 3)9>3 交换数据 得到:8,6,3,9,5,11,20 

 4)9>5 交换数据 得到:8,6,3,5,9,11,20 结果:8,6,3,5,9,11,20 

 第四轮 

 1)8>6 交换数据 得到:6,8,3,5,9,11,20 

 2)8>3 交换数据 得到:6,3,8,5,9,11,20 

 3)8>5 交换数据 得到:6,3,5,8,9,11,20 结果:6,3,5,8,9,11,20 

 第五轮 

 1)6>3 交换数据 得到:3,6,5,8,9,11,20 

 2)6>5 交换数据 得到:3,5,6,8,9,11,20 结果:3,5,6,8,9,11,20 

 第六轮 

 1)3<5 不交换数据 得到:3,5,6,8,9,11,20


<!DOCTYPE html><html lang="en">  <head>    <meta charset="UTF-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0" />    <title>Document</title>  </head>  <body>    <script>      var arr = [11, 8, 9, 6, 3, 20, 5];      function sorts(arr) {        var len = arr.length;        for (var a = 0; a < len - 1; a++) {          for (var b = 0; b < len - a - 1; b++) {            if (arr[b] > arr[b + 1]) {              var num = arr[b + 1];              arr[b + 1] = arr[b];              arr[b] = num;            }          }        }        console.log(arr);      }      sorts(arr);    </script>  </body></html>