资讯专栏INFORMATION COLUMN

【面试篇】JS的常用排序算法

YanceyOfficial / 970人阅读

摘要:冒泡排序每次对比相邻两个数据的大小升序小的拍前面,若前一个数比后一个数大,则交换两数位置。

冒泡排序:
每次对比相邻两个数据的大小,升序小的拍前面,若前一个数比后一个数大,则交换两数位置。需要两次for循环遍历.

优点:简单

缺点:时间复杂度高,运行效率低下

function sortArr(arr){
  var temp;
  for(var i=0;i    arr[j]){
               times++;
               temp = arr[i];
               arr[i] = arr[j];
               arr[j] = temp;    
            }
            console.log("第"+(++times)+"次排序后:"+arr);  
        }
    }
    return arr;
}
var times = 0;
sortArr([2,5,4,1,7,3,8,6,9,0]);

out :[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

快速排序:
先找到一个基准点(一般数组中部),数组即被分为两部分,依次与基准点数据比较,比它小的,放左边,比它大的放右边,左右分别用一个空数组去存储比较后的数据,最后执行上述操作,知道数组长度<=1;

优点:快速常用

缺点:需要额外申明两个数组,浪费了内存空间资源

var times = 0;
var quickSort = function(arr){
    if(arr.length<=1){//递归结束条件
        return arr;
    }
    var midIndex = Math.floor(arr.length/2);//找基准点
    var midIndexVal = arr.splice(midIndex,1);//取基准点的值
    var left = [];
    var right = [];
    for(var i=0;i           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86952.html

相关文章

  • 前端资源系列(4)-前端学习资源分享&前端面试资源汇总

    摘要:特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 本以为自己收藏的站点多,可以很快搞定,没想到一入汇总深似海。还有很多不足&遗漏的地方,欢迎补充。有错误的地方,还请斧正... 托管: welcome to git,欢迎交流,感谢star 有好友反应和斧正,会及时更新,平时业务工作时也会不定期更...

    princekin 评论0 收藏0
  • CSS技巧

    摘要:技巧使你的更加专业这是上关于技巧的一篇译文,另外你也可以在本项目看到原文。列举了一些很实用的技巧,比如给空内容的标签添加内容,逗号分隔列表等等。排序算法看源码,把它背下来吧排序算法的封装。主要帮助初学者更好的掌握排序算法的实现。 成为专业程序员路上用到的各种优秀资料、神器及框架 成为一名专业程序员的道路上,需要坚持练习、学习与积累,技术方面既要有一定的广度,更要有自己的深度。 Java...

    DangoSky 评论0 收藏0
  • CSS技巧

    摘要:技巧使你的更加专业这是上关于技巧的一篇译文,另外你也可以在本项目看到原文。列举了一些很实用的技巧,比如给空内容的标签添加内容,逗号分隔列表等等。排序算法看源码,把它背下来吧排序算法的封装。主要帮助初学者更好的掌握排序算法的实现。 成为专业程序员路上用到的各种优秀资料、神器及框架 成为一名专业程序员的道路上,需要坚持练习、学习与积累,技术方面既要有一定的广度,更要有自己的深度。 Java...

    zgbgx 评论0 收藏0
  • JavasScript重难点知识

    摘要:忍者级别的函数操作对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于而言,匿名函数是一个很重要且具有逻辑性的特性。通常,匿名函数的使用情况是创建一个供以后使用的函数。 JS 中的递归 递归, 递归基础, 斐波那契数列, 使用递归方式深拷贝, 自定义事件添加 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果...

    forsigner 评论0 收藏0
  • 2019-我前端面试

    摘要:先说下我面试情况,我一共面试了家公司。篇在我面试的众多公司里,只有同城的面问到相关问题,其他公司压根没问。我自己回答的是自己开发组件面临的问题。完全不用担心对方到时候打电话核对的问题。 2019的5月9号,离发工资还有1天的时候,我的领导亲切把我叫到办公室跟我说:阿郭,我们公司要倒闭了,钱是没有的啦,为了不耽误你,你赶紧出去找工作吧。听到这话,我虎躯一震,这已经是第2个月没工资了。 公...

    iKcamp 评论0 收藏0

发表评论

0条评论

YanceyOfficial

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<