美文网首页
JavaScript的排序算法——冒泡排序

JavaScript的排序算法——冒泡排序

作者: 流浪的三鮮餡 | 来源:发表于2018-11-23 16:11 被阅读57次

    冒泡排序(Bubble Sort)

    冒泡排序,有时也被称做沉降排序,是一种比较简单的排序算法。这种算法的实现是通过遍历要排序的列表,把相邻两个不符合排列规则的数据项交换位置,然后重复遍历列表,直到不再出现需要交换的数据项。当没有数据项需要交换时,则表明该列表已排序。

    冒泡排序(Bubble Sort)

    复杂度

    算法 最好情况 平均情况 最坏情况 空间复杂度 稳定性
    冒泡排序 O(n) O(n2) O(n2) O(1) 稳定

    ES6实现

    1. 普通版冒泡排序
    function BubbleSort(array) {
        let len = array.length;
        for (let i = 0; i < len; i++) {
            for (let j = 0; j < len-i-1; j++) {
                if (array[j]> array[j+1]) {
                    [array[j],array[j+1]] = [array[j+1],array[j]];
                }          
            }  
        }  
        return array;
    }
    
    1. 优化版冒泡排序
    function BubbleSort(originalArray) {
        const array = [...originalArray];
        let swapped;
        for (let i = 0; i < array.length; i++) {
           swapped = true;
           for (let j = 0; j < array.length - i - 1; j++) {
               if (array[j] > array[j+1]) {
                [array[j],array[j+1]] = [array[j+1],array[j]]
                swapped = false;
               }
           }
            if (swapped) {
                break;
            }
        }
        return array;
    }
    
    

    参考

    维基百科
    百度百科

    相关阅读

    JavaScript的排序算法——冒泡排序
    JavaScript的排序算法——选择排序
    JavaScript的排序算法——插入排序
    JavaScript的排序算法——归并排序
    JavaScript的排序算法——快速排序

    相关文章

      网友评论

          本文标题:JavaScript的排序算法——冒泡排序

          本文链接:https://www.haomeiwen.com/subject/igejqqtx.html