手记

【金秋打卡】第5天 前端面试技能拼图1

课程名称: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之前所有的对称数(回文数)-代码演示和单元测试。今天学习就先到这里吧。

坚持打卡,坚持学习,未来可期,加油😀~

0人推荐
随时随地看视频
慕课网APP