当前位置: 首页 > 文档资料 > 前端入门进阶 >

14.10 算法问题

优质
小牛编辑
137浏览
2023-12-01

前言

算法主要包括:

  • 1、排序

排序一定要准备。

  • 2、堆栈、队列、链表

队列和链表可以不准备,但是堆栈一定要准备。

一个小技巧:JS的数组本身就具备堆栈和队列的特性。比如:top、push、shift、unshift这四个api,本身就帮我们实现了堆栈和队列。

堆栈:先进后出。

  • 3、递归

递归是一定不能偷懒的。算法比较难的时候,一般要用到递归。

  • 4、波兰式和逆波兰式

总结:

比如阿里,如果基础题答的很好,但是算法不会,那可能通不过。

还有金融类的,必考算法。比如阿里云,里面的业务就是算法的,所以肯定考算法。

排序

上面的排序这么多,我们要记住下面这三个:

  • 快速排序:https://segmentfault.com/a/1190000009426421

  • 选择排序:https://segmentfault.com/a/1190000009366805

  • 希尔排序:https://segmentfault.com/a/1190000009461832

如果你还要学一个,那就是冒泡排序

题目中,会给你一个算法题, 排序只是其中一个步骤。而且,并不会指定你要求用哪种排序。

堆栈、队列、链表

参考链接:

  • https://juejin.im/entry/58759e79128fe1006b48cdfd

上面这个链接是转载的。原创博主的系列文章是:

  • 数组、队列、链表

  • 排序

递归

参考链接:

  • JavaScript中的递归

递归理解起来不难,但是用的时候很难,因为你没抓住他的本质。递归的终止条件是什么?参数是怎么传递的?一定要搞清楚。

很多人说:“我知道这道题是考递归,但是我就是不知道该怎么写”。这个面试官很无奈。

波兰式和逆波兰式

如果复习时间很紧张,这部分也不用准备了。也不是所有的公司都会问。

推荐链接:

  • 理论:http://www.cnblogs.com/chenying99/p/3675876.html

  • 源码:https://github.com/Tairraos/rpn.js/blob/master/rpn.js

总结

如果实在答不来,就说,这个算法我不是很会,只知道一些基本概念。

如果第一面就碰到算法题,这个公司不用去了。说明这个公司是招算法的,不是招前端的。