1.测试工程师算法总结:
L1排序和查找算法:
复杂度分析
查找算法:顺序查找、二分查找、其他查找算法
排序算法:冒泡排序、快速排序、其他排序算法
L2数据结构-线性表:链表、栈、队列、堆
L3数据结构-非线性表:二叉树、图
算法学习的技巧
- 画图:算法的学习过程是非常抽象的。不管是在学习过程中还是复习过程中,如果没有图辅助理解,那么整体的学习效率,包括说记忆效率都是比较差的。
- 刷题:算法就和数学题一样,只靠看,不练是无法掌握的。自然刷题也是有明确和清晰的节奏是帮助比较大的。
算法的刷题节奏
- 掌握对应算法原理以及基本思路。
- 从简单、通过率高的题目开始刷。
- 分类刷题(按学习路线的类型刷),一个类型至少完成10~20道左右的题目。
- 保持频率和节奏,比如每天投入1小时,完成一道题。
面试算法的技巧
对于大部分人来说,刷算法题主要是为了通过面试,而在面试算法过程中,也是有一些需要注意的技巧的。
-
先讲思路:
在碰到算法题大部分人在第一时间是很难立刻把对应的代码写出来的,在这种时候,可以和面试官说:你好面试官,我可以先大概说一下我的思路吗?
如果能顺利讲出来思路,即使无法完整实现所有代码,对于面试官来说,印象也比代码只写一半要好的多,在这个过程中,也有可能面试官看到你能讲出来思路就点到为止了,无需再对后面的代码做实现了。
-
编写代码:
在写代码的过程中,可以先不用特别严谨的讲究没有任何语法错误(毕竟可能是手写)。只要能把大概思路实现出来即可。
-
计算时间复杂度:
在写代码的过程中,记得要同步计算一下时间复杂度,面试官可能会提问。有所准备会更好一些。
-
考虑代码的性能优化:
到这一步,如果有能力的同学,还可以考虑代码如何还能做进一步优化。并且把自己的想法讲给面试官听,都会给你的面试分数适当加分。