归并排序与快速排序这两个算法放在一起,也是因为时间复杂度都是对数级别的。

  目前看过的资料,归并排序看《学习JavaScript数据结构与算法》介绍的归并排序吧,快速排序直接看百度百科,讲的不错。通过这两份资料弄明白实现原理之后,最后看《学习JavaScript数据结构与算法》一书里的JS实现代码。

  和之前的一样,嗯,《学习JavaScript数据结构与算法》这本书里都有现成ES5代码,就不在这儿写了,关键是弄清楚原理,然后JS代码每天写两遍,就OK了。ES6的代码周五之前补上。

  目前着急把数据结构与算法给攻下了,这块知识占用了很长时间了,计划12月25号完成。春节前把JS设计模式搞定,成为一名合格的中级前端工程师。

  归并排序:

    var array = [7, 3, 9, 6, 11, 2, 4, 5];
    var merge = (left, right) => {
        var result = [],
            il = 0,
            ir = 0;
        while (il < left.length && ir < right.length) {
            if (left[il] < right[ir]) {
                result.push(left[il++]);
            } else {
                result.push(right[ir++]);
            }
        }

        while (il < left.length) {
            result.push(left[il++]);
        }

        while (ir < right.length) {
            result.push(right[ir++]);
        }

        return result;
    };
    var mergeSortRec = arr => {
        var length = arr.length;
        if (length === 1) {
            return arr;
        }
        var mid = Math.floor(length/2),
            left = arr.slice(0, mid),
            right = arr.slice(mid, length);
        return merge(mergeSortRec(left), mergeSortRec(right));
    }

    var newArray = mergeSortRec(array);
    console.log(newArray);

  算法和验证过程都给出了,其实还是挺复杂的。

最新文章

  1. 串口计时工具Grabserial简介及修改(添加输入功能)
  2. ThreaLocal内存泄露的问题
  3. Android Activity生命周期详讲
  4. sikuli实例
  5. 联想预装win8系统改成win7操作步骤及注意事项
  6. 用slf4j+logback实现多功能日志解决方案 --- 转
  7. 如何从BBC网站学习英语
  8. arcgis server &quot;System.Web.Services.Protocols.SoapException: Error processing server request&quot;.
  9. textView富文本点击事件
  10. 【Loadrunner】初学Loadrunner——录制脚本、回放、以及优化
  11. lnmp.org 安装环境的,root权限都没法删除网站文件夹,问题解决-转
  12. 使用spark访问hive错误记录
  13. ERC20数字货币ProxyOverflow存在漏洞
  14. Bash 脚本 去除注释
  15. DE1-SOC资源
  16. slf4j+logback搭建超实用的日志管理模块
  17. LOCALDB安装和连接
  18. 【adb命令】在cmd窗口中使用adb install命令安装 中文名字apk报错的解决办法
  19. &#127538;Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】
  20. 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #21FUSE

热门文章

  1. MSP430FR4133/4131/4132单片机破解芯片解密多少钱?
  2. TMemo.Text 回车键会变成#$D#$A,而非#13#10
  3. Gridview样式的CSS控制
  4. 让mysql不能为空的字段为空时也能插入
  5. Mac AppleScript 自动完成按键
  6. Unreal4教程总结
  7. Mac无法写入移动硬盘
  8. Oracle Flashback 闪回
  9. JQuery实现Ajax应用
  10. 初学后台框架总结篇二——快速了解CI框架