学好数据结构和算法 —— 开篇
2018-10-27 20:45
363 查看
很多程序员对数据结构和算法并不熟悉,觉得在日常工作中用处并不大而且还比较难学,有时间学数据结构与算法,还不如对框架和Api熟练来的实在。确实,作为业务开发人员不懂算法仍然可以很快很好地完成开发任务,这是因为大部分开发语言底层都基于基本数据结构帮我们封装好了,我们拿来就可以用,而且性能也比较好。但是即便不需要自己去写底层框架,如果知道更多原理也能知道哪种数据结构是适合什么样的场景。随着近几年大数据、AI的兴起,特别是大公司越来越重视算法工程师和大数据处理技术的积累,没有扎实的数据结构和算法基础,程序员很容易遇到天花板。
1、什么是数据结构和算法
数据结构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。(摘自百度百科)
比如:图书馆里书籍按照计算机、医学、经济学等不同学科分类,将不同分类分别放在不同的书架,然后计算机类书架里又有计算机网络、操作系统、编程语言……医学类里有临床医学、解剖等,这种按不同分类摆放的方式就是书籍这类数据存放的结构。
算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。(摘自百度百科)
比如:我要查找《Java从入门到放弃》这本书,有很多种方法:
- 一个个书架找过去,直到找到了为止;
- 先按计算机大类找,再从计算机下面的编程语言里去找
这两种方法就是两种不同的算法。
数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。脱离了数据结构只谈算法没有实际意义,这就是为什么谈算法的时候总得要有个具体的数据结构作为基础。
2、为什么要学数据结构和算法
- 算法解决的是少和快的问题,怎么样使用最少的空间和最快的速度来处理数据,特别是海量数据时代,如何高效快速地进行数据处理显得特别重要,这也是BAT大厂注重算法的原因;
- 很多框架使用了很多的数据结构和算法的设计思想,针对不同场景有不同的优化,如果不懂数据结构和算法就很难理解它的设计思想;
- 算法是很多大厂面试必备技能;
- 如果不懂数据结构和算法就没有时间复杂度和空间复杂度的概念,也就不知道怎么评估一段代码性能;
- 运用合适的数据结构和算法可以写出性能高的代码,并且可以预估代码的性能瓶颈;
- 学习算法可以锻炼和丰富逻辑思维,写出逼格更高的代码
- ……
3、数据结构和算法学什么
1、学习内容
2、掌握好复杂度分析和基本数据结构和算法,打好基础
3、多思考多动手多练习
相关文章推荐
- 如何学好数据结构和算法
- 算法与数据结构开篇
- 如何学好算法和数据结构之我见——51CTO名家访谈实录
- 学好数据结构和算法 —— 线性表
- 各大IT公司算法、数据结构面试题、分析、考点、解答(开篇)
- 算法与数据结构 开篇概论
- 学好数据结构和算法 —— 复杂度分析
- [开篇]基础算法和数据结构0
- 数据结构和算法学习一,开篇
- 【数据结构和算法】面试中的红黑树
- 数据结构与算法之链表
- 可视化的数据结构和算法
- 数据结构和算法学习第1天:线性表
- 程序设计灵魂---算法和数据结构
- [答案V0.1版]精选微软等数据结构+算法面试100题 [前20题]
- 【算法设计与数据结构】URAL 1167. Bicolored Horses(动态规划求解)
- 数据结构全攻略--学好数据结构的必经之路
- MySQL索引背后的数据结构及算法原理
- 算法数据结构面试分享(七)字符串按单词反转
- 最小生成树(普里姆算法)- 数据结构和算法62