登录  /  注册
博主信息
博文 82
粉丝 0
评论 1
访问量 125656
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
选择排序vs冒泡排序
子龙的博客搬家啦httpswwwcnblogscomZiLongZiLong
原创
1240人浏览过

冒泡排序: 最小时间复杂度n,最差复杂度为 n^2,使用两层循环实现,依次将数组里的每个元素,与其他元素比较,只要大于当前正在比的元素就交换两者

代码实现:

function bubble(arr){
    let len = arr.length;
    for(; len >= 0;len-- ){
        let sorted = true;
        for( let j = 0; j < len ; j++ ){
            if( arr[j] > arr[j + 1] )
                swap(j,j+1,arr)//这个方法的实现详见快排一章下同
                sorted= false;
        }
        if( sorted ) break;
    }
    return arr;
}

选择排序:稳定,时间复杂度无论如何都是o(n^2), 具体实现过程是每趟排序将最小元素冒泡到已经有序的序列后边;

代码实现:

function selectSort(arr){
    let len = arr.length;
    for(let i = 0; i < len;i++){
        let min= i;
        for( let j = i + 1; j < len;j++ ){
            if( arr[min] > arr[j] ){
                min = j;
            }
        }
        swap( i,min,arr )
    }
    return arr;
}

冒泡排序的过程和选择排序的过程看起来好像是恰好相反的两个过程,每一趟冒泡之后,最大元素一定被交换到了数组的最后位置,而选择排序每一趟总是把剩余未排序中最小的元素给提了出来,周而复始。

这两个算法都是初级算法,都是稳定算法,以上

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学