二:常用算法

常见算法:

1.冒泡排序(FFI)

特点:相邻数字依次进行比较和调整,较大的往下沉,较小的上冒 (FFI)

冒泡排序


2.选择排序(FFI)

特点:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。



2.快速排序(3W)

特点:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列


3.二分法(W3F)

特点:必须要为有序的数组




方法论

1.很多算法都可以通过递归和循环两种方式实现。

通常基于递归的实现算法代码会比较简洁,但性能不如基于循环的实现算法。


2.通常排序与查找是面试考察算法的重点。

重点掌握冒泡排序,快速排序,二分法查找



3.如果面试要求在二数组(具体表现为迷宫或者棋盘)上搜索路径,那么我们可以尝试使用回溯法。

通常回溯法很适合用递归的代码实现,如果不允许,可以考虑用栈来模拟递归的过程


4.如果面试题是求某个问题的最优解,并且该问题可以分为多个子问题,那么我们可以尝试用动态规划。在使用自上而下的递归思想去分析动态规划问的时候,我们会发现重叠的更小的子问题,为了避免不必要的重复代码,我们用自上而下的循环代码来实现

如果提示说分解子问题的时候是不是存在特殊的选择,如果选择特殊的选择将一定会得到最优解,说明可能适用贪婪算法;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容