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> 

猜你喜欢

转载自www.cnblogs.com/yangchin9/p/11096229.html