Webcourse/14-前端面试/08-算法问题.md
2021-04-10 11:03:41 +08:00

105 lines
2.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 前言
算法主要包括
- 1排序
排序一定要准备
- 2堆栈队列链表
队列和链表可以不准备但是堆栈一定要准备
一个小技巧JS的数组本身就具备堆栈和队列的特性比如poppushshiftunshift这四个api本身就帮我们实现了堆栈和队列
堆栈先进后出
- 3递归
递归是一定不能偷懒的算法比较难的时候一般要用到递归
- 4波兰式和逆波兰式
**总结**
比如阿里如果基础题答的很好但是算法不会那可能通不过
还有金融类的必考算法比如阿里云里面的业务就是算法的所以肯定考算法
## 排序
上面的排序这么多我们要记住下面这三个
- 快速排序<https://segmentfault.com/a/1190000009426421>
- 选择排序<https://segmentfault.com/a/1190000009366805>
- 希尔排序<https://segmentfault.com/a/1190000009461832>
如果你还要学一个那就是**冒泡排序**
题目中会给你一个算法题 排序只是其中一个步骤而且并不会指定你要求用哪种排序
## 堆栈队列链表
参考链接
- <https://juejin.im/entry/58759e79128fe1006b48cdfd>
上面这个链接是转载的原创博主的系列文章是
- [数组队列链表](http://huang303513.github.io/2016/12/08/Javascript%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95(%E4%B8%80).html)
- [排序](http://huang303513.github.io/2016/12/19/Javascript%E7%9A%84%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95(%E5%9B%9B).html)
## 递归
参考链接
- [JavaScript中的递归](https://segmentfault.com/a/1190000009857470)
递归理解起来不难但是用的时候很难因为你没抓住他的本质递归的终止条件是什么参数是怎么传递的一定要搞清楚
很多人说我知道这道题是考递归但是我就是不知道该怎么写这个面试官很无奈
## 波兰式和逆波兰式
> 如果复习时间很紧张这部分也不用准备了也不是所有的公司都会问
推荐链接
- 理论<http://www.cnblogs.com/chenying99/p/3675876.html>
- 源码<https://github.com/Tairraos/rpn.js/blob/master/rpn.js>
## 总结
如果实在答不来就说这个算法我不是很会只知道一些基本概念
如果第一面就碰到算法题这个公司不用去了说明这个公司是招算法的不是招前端的