消息关闭
    暂无新消息!

算法在实际工作中的用处,我工作快3年了,对数据的查询是从数据库查询。但是对数据的排序等操作基本用不到像什么插入或者快速排序算法,难道算法只有在面试的时候有用吗?

最近一直在学算法,但是学了之后发现在实际工作中用不到。。。。。。,很矛盾!


10个回答

︿ 3

面试过程很多需要看你对基础技能掌握的怎么样,就好像现在开源的框架很多,但是你要真正理解他怎么去实现的,这时候据需要掌握很多基础知识,不然看的是否就会很懵比,这就是为什么,现在很多程序员写代码完全没问题,但是要把代码写灵活、通用、可扩展就很难,这就是为什么人家写的代码层次分明,结构简单,语法清晰易懂,而自己写的不是这里copy就是哪里copy,动不动就是上100甚者上1000代码,导致维护成本高,甚者过几天自己回头来看都不理解咋回事

︿ 1

不是用不到,
而是大家从不仔细考虑可以用哪个,而是喜欢用贪心算法,当前这一步怎么简单就怎么写,不管会导致后面怎么样。。。。
而是大家都懒了,所有能多花钱买更好的服务器解决的东西,有哪个人愿意自己优化代码呀,改好了没人夸,改坏了还要担责任。。。。反正是公司花钱

︿ 1

学算法的收获不止是 "会写算法",还包括理解和分析问题的能力。

这是功不唐捐的事,不必期待立刻用到。

︿ 0

我一开始和你的境况一样,每天处理点页面啊,提取数据啊这些工作。用不到什么算法知识,因为工作内容对各方面要求都不高。
不过,随着工作的时间的累计,承担的工作不仅仅是这些东西。需要独立设计一个功能,具体的实现也要自己来搞。业务拓展了以后,数据量规模变大,以前的一些代码已经不能满足要求了,这时候就需要进行算法上或者业务逻辑上的优化了。
慢慢来,你掌握的算法知识不会浪费的,只是目前还没有需要你来做这方面的工作。

︿ 0

术业有专攻吧;
技多不压身吧;
不能说算法没有用,只是你现在的工作中还没有用到而已;
到后来了,如果你能力上来了,需要做的事情多了,可能就会用到你所学习的知识了。

︿ 0

高级语言提供了丰富的API,而这些API的实现细节也有基于算法之上,像数组的排序、查找集合的某一个元素,都会涉及到算法,研究下源码总能找到它们的身影。

︿ 0

你在学算法?你都学什么算法了?插入排序??你学插入排序当然会用不到了!
你要是学快排的话,抱歉,库都实现好了。

你学不实用,或者成熟的算法,当然很难用到了。前者根本用不到,后者已经被别人实现好了。

对于常见算法,最重要的是理解:它的时间复杂度、空间复杂度、功能特点等。然后呢,你就可以学点实现不是那么多的算法(比如 skiplist 啊,hyperloglog 啊,bloom filter 啊之类的。有些语言糙,连最大堆和 btree map 都没有,你需要的时候也可以去实现一个。当然前提是你知道你需要什么。

你自己的背景说得太少了,所以我不好举例。就说数据库查询吧,你知道 hash 索引和 btree 索引的差别吗?

至于面试。那是刚毕业的人,没什么实战经验,所以才会考算法这种学校里学的东西吧。不然面试会针对你应聘的工作内容来问的。当然那些大公司都很需要懂算法的人,创业公司就不怎么需要了。

再补充一点:会算法不等于会编程。很多人认为算法好就能写出好程序,are you kidding me?算法好的确能写出高效的程序,但是程序又不止高效这一方面。一个优秀的程序需要:

  • 效率足够好

  • 良好的可读性 / 可维护性

  • 可扩展性

  • 良好的用户界面(不管它是 GUI、TUI 还是命令行或者配置文件)

  • 足够的支持性文档

  • 良好的兼容性

  • 易与其它程序配合工作