冒泡排序算法

冒泡排序算法如同他的名字一样, 将数据的值看作一个个气泡,按照一定的顺序(大到小, 或者小到大)依次移动到两端的位置
最终数据的排列方式有两种 [小, 大] 或者 [大, 小]
冒泡的方式有两种 大泡先冒, 或者 小泡先冒

[小, 大] 大泡先冒

function pupple(arr) {
    let length = arr.length;
    if(length === 1){ return arr }
    let res = arr;
    for (let i = 0; i < length - 1; i++){
        for (let j = 0; j < length - 1 - i; j++) {
            if(res[j] > res[j + 1]){
                let temp = res[j]
                res[j] = res[j +1]
                res[j + 1] = temp
            }
        }
    }
    return res;
}

两层 for 循环中, 外层循环的次数决定了每冒一个气泡, 需要对数据比较的次。 例如一个不重复的, 大小不同的 10 位长度的数组, 选出其中最大的一个最多需要比较 9 遍, 选出该数字之后, 之后的操作便不再对其进行操作, 所以下一次比较需要比较 8 遍。所以内循环每次循环的次数是逐次减少的。 内循环是对数据具体的比较, 每次比较某个数据跟其下一个数据。

-------- 9
------- 8
------ 7
----- 6
---- 5
--- 4
-- 3
- 2
 1

纵向表示外循环的次数 横向的数字表示内循环的次数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。