前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >冒泡排序

冒泡排序

作者头像
kai666666
发布2020-10-19 16:00:34
3920
发布2020-10-19 16:00:34
举报
文章被收录于专栏:橙光笔记

冒泡排序是最简单的一种排序方法,正因为它很简单,所以受到了面试官的青睐,成了程序员必会的内容。

它的思想是通过两次循环,如果前一个比后一个小的时候那么两者互换位置(假设是从小到大排序)。就这样大的数就会像水中的气泡一样从前面逐渐走到后面,这也正式名字的由来。

这里给出冒泡排序的实现,里面使用了flag进行标记,如果已经排好序的数组那么就不需要多次遍历了:

代码语言:javascript
复制
function bubbleSort(arr){
    var flag = true; // 标记某次循环是否执行完毕
    for(var i = 0; i < arr.length - 1 && flag; i++){
        flag = false; // 如果本次循环没有交换 说明已经已经是排好序的 不需要再遍历了
        for(var j = 0; j < arr.length - 1 - i; j++){
            // 如果前面的比后面的大 那么交换元素
            if(arr[j] > arr[j + 1]){
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
                flag = true;// 有交换的时候 说明很可能还没有排好序
            }
        }
    }
    return arr;
}

var arr = [8,3,10,7,5,6,4,2,1,9];
bubbleSort(arr);
console.log(arr);// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档