课程名称:2周刷完100道前端优质面试真题
课程章节:第3章 前端面试技能拼图1: 数据结构和算法(下),大厂面试必考
主讲老师:双越
课程内容:
今天学习的内容包括:
3-13 用 JS 实现快速排序并说明时间复杂度-代码演示和单元测试——使用递归和二分实现快速排序。
3-14 -用JS实现快速排序并说明时间复杂度-性能分析——前端是重时间轻空间,空间复杂度使用了递归,还是很高的。
课程收获:
固定算法,固定思路
- 找到中间位midValue
- 遍历数组,小于midValue放在left,否则放在right
- 继续递归。最后concat 拼接,返回
细节
- 获取midValue的两种方式∶
- 使用splice ,会修改原数组
- 使用slice ,不会修改原数组 —— 更加推荐
时间复杂度
- 有遍历,有二分—— O(n*logn)或者Q(nlogn)
- (常规排序,嵌套循环,复杂度是(n^2))
splice 和slice没有区分出来
- 算法本身的时间复杂度就够高O(n*logn)
- 外加,splice是逐步二分之后执行的,二分会快速削减数量级
- 如果单独比较splice和slice ,效果会非常明显
划重点
- 常见排序算法
- 有二分,时间复杂度就包含O(logn)
- 注意数组操作:splice和slice
今天的 学习了 用 JS 实现快速排序并说明时间复杂度,还是二分法的实现方式,感觉递归还有点动态规划的感觉,虽然学着忘着,但是总体感觉还好。
下一步就是 学习 获取1-10000之前所有的对称数(回文数)-代码演示和单元测试。今天学习就先到这里吧。
坚持打卡,坚持学习,未来可期,加油😀~

点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦

