手写JS面试题 --- 冒泡排序

手写JS面试题 --- 冒泡排序 -- 时间复杂度 n^2

题目描述:实现一个冒泡排序

实现代码如下:

最佳实践应该是在函数中加上类型判断传入的参数是否为一个数组!

function bubbleSort(arr) {
        // 缓存数组长度
        const len = arr.length;
        // 外层循环用于控制从头到尾的比较 + 交换到底有多少轮
        for (let i = 0; i < len; i++) {
            // 内层循环用于完成每一轮遍历过程中的重复比较 + 交换
            for (let j = 0; j < len - 1; j++) {
                // 若相邻元素前面的数比后面的大
                if (arr[j] > arr[j + 1]) {
                    // 交换两者
                    [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
                }
            }
        }
        // 返回数组
        return arr;
    }

    console.log(bubbleSort([5, 6, 1, 2, 3, 4])); //  [1, 2, 3, 4, 5, 6]

请忽略下面的内容

【投稿说明】
博客园是面向开发者的知识分享社区,不允许发布任何推广、广告、政治方面的内容。
博客园首页(即网站首页)只能发布原创的、高质量的、能让读者从中学到东西的内容。
如果博文质量不符合首页要求,会被工作人员移出首页,望理解。如有疑问,请联系contact@cnblogs.com。

【投稿说明】
博客园是面向开发者的知识分享社区,不允许发布任何推广、广告、政治方面的内容。
博客园首页(即网站首页)只能发布原创的、高质量的、能让读者从中学到东西的内容。
如果博文质量不符合首页要求,会被工作人员移出首页,望理解。如有疑问,请联系contact@cnblogs.com。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lvhanghmm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值