学习数据结构与算法的重要性和技巧

数据结构与算法的重要性

个人觉得作为一名程序员,如果没有对数据结构与算法有深刻的认知,是无法成为一名优秀工程师,更别说架构师、技术专家。虽然平时写业务代码,有各种各样的内置函数库、开源类库、开源框架可以使用,满足日常需求自然没什么问题,但是!对技术有要求、有追求的程序员,大多数是不愿意成为 CRUD Boy , 毕竟,不想成为架构师的程序员不是好程序员。

来谈谈应用层面的原因。在计算机科学和互联网迅猛发展下,需要计算的数据量越来越庞大。但是计算机的计算能力是有限的,这么大量的数据计算,需要越来越多的计算机,需要越来越长的计算时间,注重效率的我们需要尽可能的提高计算效率。其中重要的一项,就是使用合适的数据结构与算法。选用合适的数据结构和算法,特别是在处理体量非常庞大的数据的时候,可以极大提高计算效率。

如果没有数据结构与算法基础,往小的说,能写出高质量、高性能、可扩展性强的程序吗?往大的,要你设计、开发一个具备高可用、分布式、数据持久化系统,你有把握吗?我相信大多人是做不到的。

开源类库、主流框架中,一般都揉和了很多基础数据结构和算法的设计思想。如果你能弄明白这些底层原理,你就能更好地使用它们。即便出现问题,也很容易就能定位。因此,掌握数据结构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的。

掌握了数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样。

数据结构与算法是什么

数据结构就是指一组数据的组织和存储结构。算法就是操作数据的一组方法。

  • 10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;
  • 10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

数据结构与算法的关系

数据结构和算法是相辅相成的。特定的数据结构要用特定的算法,数据结构是为算法服务的,算法要作用在特定的数据结构之上。

数据结构与算法的认知要求

学习数据结构和算法如何提高效率、如何节省存储空间,对于每个概念和实现过程。搞清楚:是什么、为什么、怎么做。要学习它的来历、自身的特点、适合解决的问题以及实际的应用场景。

数据结构与算法最重要的概念

复杂度分析:时间复杂度,即算法的运行时间。空间复杂度,即运行算法所需的内存空间大小。

学习技巧

  1. 边学边练,适度刷题
  2. 多问、多思考、多互动
  3. 打怪升级学习法:留言、笔记、心得、找错
  4. 知识需要沉淀,不要想试图一下子掌握所有:学习知识的过程是反复迭代、不断沉淀的过程,书读百遍其义自见。
打赏作者

您将是第一位评论人!

提醒
avatar