读《啊哈!算法》——冒泡排序

冒泡排序不用多说什么了,虽然复杂度很高,但是却这么“有名”。。。不论哪一门语言都应该会写这个,也算入门算法吧~~
直接上代码好了!

window.onload = function(){
    var arr=[];
    for(var i=0;i<10;i++){
        arr.push(prompt('请输入整数'));
    }
    for(var i=0;i<arr.length-1;i++){
        for(var j=0;j<arr.length-i;j++){
            if(arr[j]>arr[j+1]){
                var temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
};

冒泡排序的一个特点是嵌套循环,外层循环的次数是一共需要进行多少趟比较,2个数需要比较一次,3个数需要2次,类推n个数需要n-1次。内层循环是每趟比较需要比较几次,代码中用的是arr.length-i,因为比较一趟以后最大的数已经排到最后下一次无需再做比较,所以减掉i,即之前比过的数不用比较直接进行下一趟。

让我们来对冒泡排序封装成一个函数吧~
function bubbleSort(arr){
    for(var i=0;i<arr.length-1;i++){
        for(var j=0;j<arr.length-i;j++){
            if(arr[j]>arr[j+1]){
                var temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

喏,每次对数组排序就可以直接调用函数啦。
最后,需要记住冒泡排序的时间复杂度是O(N*N)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 9,092评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 5,031评论 0 2
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,599评论 0 52
  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 6,776评论 0 35
  • 我极力推荐所有人去上香港的课程,因为它把你的过去人生全部打碎,帮你找回三岁的你,那个原来的你,那个很开心的你,虽然...
    Ammon耀明兄阅读 1,495评论 0 0

友情链接更多精彩内容