算法导论吃透后的水平_如何准备算法面试?

本文介绍了如何准备算法面试,强调了展示合理思考路径的重要性。算法面试不仅是给出正确答案,而是展示解决问题的方式。通过排序算法的例子,说明如何根据问题特点选择合适算法,并指出算法面试只是技术面试的一部分,还需考虑项目经历、行为问题等。建议选择适合的在线判题系统进行练习,并提醒学习时避免完美主义,重点掌握基础算法和数据结构。
摘要由CSDN通过智能技术生成

点击蓝色“码出高效面试的程序媛”关注我,

了解更多技术流行面试题

2569a6cccc411b2a16fa5c76c1ab9c99.png

来源:imooc.com

主要介绍算法面试的一些问题、以及如何准备算法面试

算法面试不仅仅是正确的回答问题

对于面试中遇到的大多数问题,都能有一个合理的思考路径

什么是算法面试?

  • 让大家在面对面试中的算法问题时,有一个合理的思考路径:

  • 不代表能够“正确”回答每一个算法问题,但是合理的思考方向其实更重要,也是正确完成算法面试问题的前提

  • 算法面试优秀不意味着技术面试优秀

  • 技术面试优秀不意味着能够拿到Offer

什么是给出合理的思考路径?

  • 算法面试的目的不是给出一个“正确”答案,  

  • 而是展示给面试官你思考问题的方式。

“正确”本身是一个相对概念
  • 算法面试不是高考。

  • 把这个过程看作是和面试官一起探讨一个问题的解决方案。

  • 对于问题的细节和应用环境,可以和面试官沟通。

  • 这种沟通本身很重要,它暗示着你思考问题的方式。

例子:我们需要对一组数据进行排序
  • 设计排序接口,标准库的设计,业务中排序算法。  

  • 排序是基础操作,很重要。

解决

快速排序算法:O(nlogn)

  • 忽略了算法使用的基础环境。要动态选择。

(向面试官提问):这组数据有什么样的特征?

  • 有没有可能包含有大量重复的元素?

  • 如果有这种可能的话,三路快排是更好地选择。

  • 普通数据:普通快速排序就行了;java语言标准库排序使用的三路快排。

  • 是否大部分数据距离它正确的位置很近?是否近乎有序?

  • 如果是这样的话,插入排序是更好地选择。

  • 按照业务发生顺序,先发生先完成,几乎有序,插入排序是更好的选择。

  • 是否数据的取值范围非常有限?比如对学生成绩排序。

  • 如果是这样的话,计数排序是更好地选择。高考成绩取值范围有限:计数排序更好。

(向面试官提问):对排序有什么额外的要求?

  • 是否需要稳定排序?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值