JavaScript算法(归并排序与快速排序)
2024-08-27 04:43:23
归并排序与快速排序这两个算法放在一起,也是因为时间复杂度都是对数级别的。
目前看过的资料,归并排序看《学习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);
算法和验证过程都给出了,其实还是挺复杂的。
最新文章
- 串口计时工具Grabserial简介及修改(添加输入功能)
- ThreaLocal内存泄露的问题
- Android Activity生命周期详讲
- sikuli实例
- 联想预装win8系统改成win7操作步骤及注意事项
- 用slf4j+logback实现多功能日志解决方案 --- 转
- 如何从BBC网站学习英语
- arcgis server ";System.Web.Services.Protocols.SoapException: Error processing server request";.
- textView富文本点击事件
- 【Loadrunner】初学Loadrunner——录制脚本、回放、以及优化
- lnmp.org 安装环境的,root权限都没法删除网站文件夹,问题解决-转
- 使用spark访问hive错误记录
- ERC20数字货币ProxyOverflow存在漏洞
- Bash 脚本 去除注释
- DE1-SOC资源
- slf4j+logback搭建超实用的日志管理模块
- LOCALDB安装和连接
- 【adb命令】在cmd窗口中使用adb install命令安装 中文名字apk报错的解决办法
- &#127538;Eclipse通过jdbc连接数据库制作简单登陆界面【新手必看】
- 《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #21FUSE