算法学习(一)

一、认识算法面试

      首先算法面试不是高考,应该把这个过程看作和面试官一起探讨一个问题的解决方案。对于问题的细节和用场景,可以与面试官沟通。

举例:对于一组数据进行排序,很多人立马想到的是用快排算法,但真的是这样吗?

 其实不是的,我们应该先看看这组数据有什么样的特征,可以询问面试官:

(1)有没有可能包含大量重复的元素?使用三路快排

(2)是否大部分数据距离它正确的位置很近?是否近乎有序?插入排序

(3)是否数据的取值比较有限?例如学生成绩,人员年龄?计数排序

(4)是否需要稳定排序?归并算法

(5)数据的存储情况是怎样的?数据的大小是否可以装载在内存里?数据量比较大,或者说内存不足以装载,需要使用外排序

二、什么是“正确”的回答一个算法问题?

     正确还包括对问题的独到见解:优化,代码规范,容错性。回答不出来也没关系,关键在于表达出解决问题的思路

三、认识数据规模

      以下做个参考,如果想在1s内解决问题:

  • O(n^2)的算法可以处理10^4级别的数据;
  • O(n)的算法可以处理10^8级别的数据;
  • O(nlogn)的算法可以处理10^7级别的数据;

 

 

 

      

     

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值