====什么是算法面试====
算法面试不是什么:
1. 不代表能够正确的回答每一个算法问题,但是合理的思考方向其实更重要,也是正确完成算法面试问题的前提。
2.算法面试优秀并不意味着技术面试优秀
3. 技术面试优秀不意味着能够拿到Offer.
====合理的思考路径=====
目的:给面试官展示出你的思考路径,将算法面试过程看作是和面试官一起探讨一个问题的解决方案,对于问题的细节和应用环境,可以和面试官沟通,这种沟通本身很重要,它暗示着你思考问题的方式。
例如:对数据进行排序
1. 快速排序算法:O(nlogn)
2. 这组数据有什么特征,是否包含了大量重复的元素,是否三路快排更快速。
比如,JAVA 背后就是三路快排。
3. 这组数据是否近乎有序的,是否距离它正确的位置很近,如果是的话,用插入排序法就很快。
4.如果数据是有区间的,计数排序就更好。比如高考成绩。
5. 快排依赖于数组的随机存储,如果现在是使用链表的话,归并排序会更快。
======
面向对象 设计模式 网络相关,安全相关,内存相关,并发相关,系统设计.
======
高级的算法提及会很低:红黑树 计算几何 B-Tree 数论 FFT 斐波那契数
======
不要轻视基础算法和数据结构: 各种排序算法,
基础数据结构和算法的实现:堆、二叉树、图
基础数据结构的使用:如链表、栈、队列、哈希表、图、Trie、并查集
基础算法:深度优先、广度优先、二分查找、递归
基本算法思想:递归、分治、回溯搜索、贪心、动态规划...
=====
1.注意题目中的条件
2.当没有思路的时候,自己给自己几个简答的测试用例,试验一下。
3.不要忽视暴力解法,暴力解法通常是思考的起点。
4.优化算法
1>遍历常见的算法思路,便利常见的数据结构
2> 空间与时间的交换,哈希表,预处理信息(排序)
===实际编写问题===
1.数组为空,字符串为空,数量为0,指针为NULL,要注重模块化,复用性。
标签:面试官,数据结构,快排,面试,算法,玩转,排序 来源: https://www.cnblogs.com/dagailun/p/12368685.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。