javascript中五种常见的排序之冒泡排序

1、冒泡排序

  冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。如果两个元素相等,是不会再交换的。
  数组中有 N 个数,比较每相邻两个数,如果前者大于后者,就把两个数交换位置。
  第一轮就可以选出一个最大的数放在最后面;
  第二轮选出前N-1个数中最大的数放在N-1位置上;
  第三轮...
  那么经过  n-1(数组的 length - 1) 轮,就完成了所有数的排序。
  这样就理解为什么外层for循环里 i<length-1,因为循环n-1次;
  内层for循环是第i次循环的时候,数组后面已经固定了i个数值,不需要再和其比较,故length-1-i;

  冒泡排序总的平均时间复杂度为O(n^2);

  javascript版代码如下:

  

 1 var bubbleSort = function(arr){
 2     
 3         for(var i = 0;i<arr.length-1;i++){
 4             for(var j = 0;j<arr.length-1-i;j++){
 5                 if(arr[j]>arr[j+1]){
 6                     var k = arr[j];
 7                     arr[j] = arr[j+1];
 8                     arr[j+1] = k;
 9                 }
10             }
11         }
12         console.log(arr);
13         
14     }
15     bubbleSort([2,5,6,3,4,6,64,34,69]);
 
 

猜你喜欢

转载自www.cnblogs.com/kongVv/p/11260369.html