1.二分查找算法:一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。折半搜索每次把搜索区域减少一半,时间复杂度为Ο(logn) 。
https://www.cnblogs.com/luoxn28/archive/2004/01/13/5767571.html
2.快排 关键词:快排、第k大
https://www.runoob.com/w3cnote/quick-sort.html
3.斐波那契
https://www.jianshu.com/p/5ed59728e1ed
美团面试:https://blog.youkuaiyun.com/weixin_45440502/article/details/109729016 第3点
快手面试 https://blog.youkuaiyun.com/weixin_45440502/article/details/110098282 第8点
4.冒泡排序
https://www.cnblogs.com/baili-luoyun/p/10176382.html
5.十大经典排序算法
https://www.runoob.com/w3cnote/ten-sorting-algorithm.html
美团面试:https://blog.youkuaiyun.com/weixin_45440502/article/details/109729016 第9点
百度面试 https://blog.youkuaiyun.com/weixin_45440502/article/details/110143832 第11点
6.BFPRT(线性查找算法):该算法的思想与快速排序思想相似
7.DFS(深度优先搜索):Depth-First-Search),是搜索算法的一种。它沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。DFS属于盲目搜索。深度优先搜索是图论中的经典算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。一般用堆数据结构来辅助实现DFS算法。
8.BFS(广度优先搜索):(Breadth-First-Search),是一种图形搜索算法。简单的说,BFS是从根节点开始,沿着树(图)的宽度遍历树(图)的节点。如果所有节点均被访问,则算法中止。BFS同样属于盲目搜索。一般用队列数据结构来辅助实现BFS算法。
9.动态规划算法:通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。 通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量: 一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。 这种做法在重复子问题的数目关于输入的规模呈指数增长时特别有用。
字节面试:https://blog.youkuaiyun.com/weixin_45440502/article/details/109586398 第12点
10.针对JS的算法
美团面试:https://blog.youkuaiyun.com/weixin_45440502/article/details/109729016 第10点
新东方面试: https://blog.youkuaiyun.com/weixin_45440502/article/details/109823333 第13点
快手面试: https://blog.youkuaiyun.com/weixin_45440502/article/details/110098282 第9点
百度面试 https://blog.youkuaiyun.com/weixin_45440502/article/details/110143832 第10点、第12点