JS 冒泡排序

回温一下 JavaScript中的冒泡排序

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

时间复杂度,空间复杂度,稳定性:
时间复杂度 指的是一个算法执行所耗费的时间
空间复杂度 指运行完一个程序所需内存的大小
稳定 指如果a=b,a在b的前面,排序后a仍然在b的前面,不稳定指,如果a=b,a在b的前面,排序后可能会交换位置

<script type="text/javascript">  
    
    var arr = [12, 34, 28, 28, 15, 13, 27, 46];

    // reverse 倒序 noReverse 正序
    console.log(BubbleSort(arr,'noReverse'))

    function BubbleSort(arr,order) {
        // i 是比较的次数 因为是两两相比 所以这里 i 从 1 开始到 length-1 
        for (let i = 1; i < arr.length; i++) {
            
            for(let j = 0; j < arr.length-i; j++) {
                if (order === 'reverse') {
                    if (arr[j] > arr[j+1]) {
                        var item = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = item;                    
                    }
                }else if (order === 'noReverse') {
                    if (arr[j] < arr[j+1]) {
                        var item = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = item;                    
                    }
                }
                
            }

        };

        return arr
    };

</script> 

现成的排序方法:sort()
使用方法:sort(function (a,b){return  a-b})     从小到大排

                  sort(function (a,b){return  b-a})     从大到小排

//升序
var
arr = [4,3,6,5,7,2,1]; arr.sort(function(a,b){ return a-b }); console.log(arr);
//降序
var arr = [4,3,6,5,7,2,1]; arr.sort(function(a,b){ return b-a }); console.log(arr);

 

posted @ 2019-06-27 11:58  yangchin9  阅读(460)  评论(0编辑  收藏  举报