冒泡排序初级理解

Bubble Sort

排序原理:

  1.比较相邻的元素,如果前面一个元素比后面一个元素大,就交换这两个元素的位置

  2.对每一个相邻元素做同样的工作,从第一对元素到结尾的最后一对元素。最终最后位置就是最大值。

比如:

  初始状态: 4  5  6  3  2  1

  第一趟  4  5  3  2  1  6

  第二趟  4  3  2  1  5  6

  第三趟  3  2  1  4  5  6

  第四趟  2  1  3  4  5  6

  第五趟  1  2  3  4  5  6

注意:在这个例子中,一共有六个元素,需要5趟就可以得到正确的顺序,所以需要排n - 1趟

  第一趟  元素交换5次

  第二趟  元素交换4次

  第三趟  元素交换3次

  ......

  第五趟  元素交换1次

  因此得到一个结论,元素交换次数 + 趟数  = 元素个数,所以给出代码

 1 <script type="text/javascript">
 2             var arr = [4,5,6,3,2,1];
 3             function BubbleSort(arr) {
 4                 for(var i = 0 ; i < arr.length - 1; i ++) {
 5                     for(var j = 0; j < arr.length - 1 - i; j ++) {
 6                         if(arr[j] > arr[j + 1]) {
 7                             var temp = arr[j];
 8                             arr[j] = arr[j + 1];
 9                             arr[j + 1] = temp;
10                         }
11                     }
12                 }
13                 return arr;
14             }
15 
16             console.log(BubbleSort(arr));
17         </script>

性能

时间复杂度: 平均时间复杂度O(n*n) 、最好情况O(n)、最差情况O(n*n)
空间复杂度: O(1)
稳定性: 稳定

  

posted @ 2020-04-14 18:03  Silver9908  阅读(123)  评论(0)    收藏  举报