当初数据结构与算法这样学,现在也不至于这样!!!

简介: 当初数据结构与算法这样学,现在也不至于这样!!!

学习数据结构与算法一个很重要的前提,就是至少熟练掌握一门编程语言。至于是那种语言就无关紧要了,C 语言、C++、Java、Python 等语言都可以。因为无论是数据结构还是算法,它教会我们的是解决问题的思想,并不挂靠某一门具体的编程语言。换句话说,在掌握任何一门编程语言的基础上,都可以学习数据结构和算法。


数据结构与算法的关系


大量数据结构教程中都将数据结构的知识和算法掺杂起来讲,使很多初学者认为数据结构就是在讲算法,这样理解是不准确的。如果把程序理解为:


程序=数据+算法


那么数据结构用于解决数据存储问题,而算法用于处理和分析数据,输出结果。


在解决问题的过程中,数据结构要配合算法选择最优的存储结构来存储数据,而算法也要结合数据存储的特点,用最优的策略来分析并处理数据,可以最高效地解决问题。


程序员必备资源,值得收藏!点击下载


数据结构与算法的重要性


假设需要从众多数据中查找出符合要求的元素,美学没学习数据结构的话,只能借助数组这种简单的存储结构来实现,而通过学习数据结构,解决此类问题既可以通过构建二叉排序树、平衡二叉树、红黑树、B+/B- 树甚至借助哈希表解决。不同数据结构选择往往直接影响程序性能好坏。


掌握了数据结构与算法,看待问题的深度、解决问题的角度会大有不同,对于个人逻辑思维的提升,也是质的飞跃。与编程语言不同,无论是 c语言、Java、Python、C++、PHP 还是其他编程语言,无时无刻不在更新迭代,而数据结构却永远不会过时,毋庸置疑,数据结构是每个程序员必须掌握的基本功。


要想学好数据结构,不仅要求学员具备良好的编程基础,还需具有较强的逻辑分析能力、理解能力和一定的空间想象能力,可以这么说,能玩转数据结构的人,其综合实力往往都不差。很多大的互联网公司,更看重的往往不是你精通多少种编程语言,而是综合能力,也就是解决问题的能力。可见,数据结构与算法是能力高低的分水岭,是大厂选拔人才的重要标准。


学习数据结构的三部曲



比如《算法图解》、《我的第一本算法书》、《啊哈算法》、《大话数据结构》、《漫画算法-小灰的算法之旅》、《算法(第4版)》、《数据结构与算法分析》、《挑战程序设计竞赛》以及《算法导论》等等。


如果要比较系统地学习数据结构的话,推荐看《大话数据结构》、《算法(第4版)》和《数据结构与算法分析》。


如果刚接触数据结构的话,可以从《算法图解》、《我的第一本算法书》入手。


视频


1. 郝斌数据结构


虽然比较老,但是讲的比较详细,容易理解,对初学者非常友好。


https://www.bilibili.com/video/BV1Ut411a7rN?from=search&seid=14411767501116137153


2. 数据结构-浙江大学


课程是由陈越与何钦铭共同录制,b站与慕课网都有,慕课网比较清晰一些


https://www.icourse163.org/course/ZJU-93001?from=searchPage


https://www.bilibili.com/video/BV1JW411i731?p=1


3. 数据结构与算法基础


课程由青岛大学王卓老师录制,非常适合考研,讲的题比较多。



https://www.bilibili.com/video/BV1nJ411V7bd?p=1


多动手


动手去做,动手去做,动手去做。重要的话说三遍。


动手包括撸码,还包括"多画"


要边学习边画图。因为对于数据结构中的存储结构来说,尤其是树结构和图结构,存储结构确实比较复杂,仅靠空间想象难免会有披露,而通过亲手画图往往能避免很多“坑”,后面关于数据结构与算法的文章中,我也会加入一些动图。


把数据结构图形化,视觉化。在直觉上感受一个数据结构是什么样子的。使用它是什么感觉,抽象上和具体实现上是什么样子的。这就是最重要的事情。并且无论是对于简单的队列、栈还是平衡树都很重要而且有效。把数据结构画出来,在你的脑袋瓜里面就能想象出来,总之,你需要做的就是,直观的去了解这些数据结构。


在学习某些算法时,也可以借助画图来加深自己的理解。可以边阅读代码边画图,这样可以更快理清代码的实现逻辑。


在通过“多画”实现理解存储结构和实现逻辑的基础上,初学者还要“多撸码”编写实现代码。对于某一种存储结构或者算法,没有 3 遍以上自己独立的实现过程,是很难做到融会贯通的。


另外,可以在leetcode和牛客网多刷题。


思维导图


image.png


来源:https://blog.csdn.net/ityqing/article/details/82838524


分享一本由谷歌大佬所撰的《LeetCode算法题解+代码》


里面包含了详细的题目分析+详细代码答案且已开源,可作为刷题的辅助和参考,格式为PDF,方便阅读,也方便打印出来学习。


上面PDF文档,链接:https://pan.baidu.com/s/1DXxvZvsBEtNmKBFkBhbYbw 提取码:1234

最近发现的一个宝藏资源分享给大家,点击领取

相关文章
|
8月前
|
存储 算法 NoSQL
1.数据结构与算法开篇
1.数据结构与算法开篇
70 0
|
8月前
|
前端开发 JavaScript
Web前端开发之面试题全解析 一,2024年最新面经牛客
Web前端开发之面试题全解析 一,2024年最新面经牛客
|
NoSQL Java 关系型数据库
面经开篇手册《面试官都问些啥问题》,一文讲透,值得收藏
面经开篇手册《面试官都问些啥问题》,一文讲透,值得收藏
|
8月前
|
存储 人工智能 算法
有哪些数据结构与算法是程序员必须要掌握的?——“数据结构与算法”
有哪些数据结构与算法是程序员必须要掌握的?——“数据结构与算法”
|
存储 算法 搜索推荐
数据结构与算法:编程中的基本功
数据结构与算法:编程中的基本功
92 0
|
算法 Java 程序员
如何自学《数据结构与算法》?
如何自学《数据结构与算法》?
|
自然语言处理 算法 程序员
谈一谈|数据结构与算法之绪论
谈一谈|数据结构与算法之绪论
66 0
|
芯片
【计算机基础恶补】南桥北桥
【计算机基础恶补】南桥北桥
209 0
【计算机基础恶补】南桥北桥
|
机器学习/深度学习 监控 算法
手撕数据结构与算法-开篇
在我看来后端程序员应该学的有三大基础知识"数据结构与算法"、"计算机系统"、"操作系统Linux"
117 0

热门文章

最新文章