🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 简介 算法是完成某个特定任务的过程。 算法可以用自然语言、伪代码、流程图和计算机语言等方式标识。 在面向过程语言中,算法通常用类来实现。 <br> <br> # 算法的五大特征 * 有穷性:算法必须能在执行有限个步骤之后终止 * 确切性:每一个步骤必须有确切的定义 * 输入项:有0个或多个输入,用来规定初始情况,0个输入是指算法本身定了初始条件 * 输出项:有一个或多个输出,是对输入数据处理后的结果。没有输出的算法是无意义的 * 可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行步骤,每个计算都可以在有限时间内完成 <br> <br> # 如何评价算法的好坏 * 主要通过算法复杂度衡量 * 时间复杂度 * 空间复杂度 * 正确性 * 可读性 * 健壮性 <br> <br> # 计算算法复杂度 * 有几重循环,一般一重就是O(n),两重就是O(n^2) * 如果有二分,则为O(LogN) * 保留最高项,去除常数项 <br> <br> # 必须掌握的基本算法 枚举 递归 基本排序 基本查找 <br> <br> # 参考资料 [十大经典排序算法总结(JavaScript描述)](https://juejin.im/post/57dcd394a22b9d00610c5ec8) [前端笔试&面试爬坑系列---算法](https://juejin.im/post/5b72f0caf265da282809f3b5) [algorithms.js](https://github.com/felipernb/algorithms.js) [javascript-algorithms](https://github.com/trekhleb/javascript-algorithms)