首页 > 技术文章 > js冒泡排序

bldf 2017-07-07 14:49 原文

JS冒泡排序

原理 :依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面。依照这个规则进行多次并且递减的迭代,直到顺序正确。

时间复杂度,空间复杂度,稳定性

  1. 平均时间复杂度O(n*n)
  2. 最好情况O(n)
  3. 最差情况O(n*n)
  4. 空间复杂度O(1)
  5. 稳定性:稳定

说明

  1. 时间复杂度指的是一个算法执行所耗费的时间
  2. 空间复杂度指运行完一个程序所需内存的大小
  3. 稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面
  4. 不稳定指,如果a=b,a在b的前面,排序后可能会交换位置
function bubbleSort(arr){
    for(i=0;i<arr.length-1;i++){
        for(j=0;j<arr.length-1-i;j++){
            if(arr[j]>arr[j+1]){
                var temp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=temp;
            }
        }
    }
    return arr;
}
var arr = [100,90,80,62,80,8,1,2,39];
console.log(bubbleSort(arr)); // [ 1, 2, 8, 39, 62, 80, 80, 90, 100 ]

 

推荐阅读