冒泡排序初级理解
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)
稳定性: 稳定

浙公网安备 33010602011771号