千古前端图文教程

vuePress-theme-reco 千古壹号    2021 - 2022
千古前端图文教程

Choose mode

  • dark
  • auto
  • light
公众号
博客
GitHub

千古壹号

0

Article

0

Tag

公众号
博客
GitHub
  • 00-前端工具

  • 01-HTML

  • 02-CSS基础

  • 03-CSS进阶

  • 04-JavaScript基础

  • 05-JavaScript基础:ES6语法

  • 06-JavaScript基础:异步编程

  • 07-JavaScript进阶

  • 08-前端基本功:CSS和DOM练习

  • 09-移动Web开发

  • 10-MySQL数据库

  • 11-Node.js

  • 12-Vue基础

  • 13-React基础

  • 14-前端性能优化

  • 15-前端面试

    • 00-准备
    • 01-页面布局
    • 02-CSS盒模型及BFC
    • 03-DOM事件的总结
    • 04-HTTP协议
    • 05-01.创建对象和原型链
    • 05-02.面向对象:类的定义和继承的几种方式
    • 06-跨域通信类
    • 07-安全问题:CSRF和XSS
    • 08-算法问题
    • 09-js运行机制:异步和单线程
    • 10-页面性能优化
    • 11-前端错误监控
  • 16-前端工程化

  • 17-前端综合

08-算法问题

vuePress-theme-reco 千古壹号    2021 - 2022

08-算法问题

千古壹号
(adsbygoogle = window.adsbygoogle || []).push({});

# 前言

算法主要包括:

  • 1、排序

排序一定要准备。

  • 2、堆栈、队列、链表

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

一个小技巧:JS的数组本身就具备堆栈和队列的特性。比如:pop、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

# 总结

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

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