1. 如何学习数据结构与算法
1、记住数据结构,记住算法思想(是什么)记住数据结构最直观的东西;记忆该数据结构的定义、性质、特点等。很多东西的理解和创新都是以记忆为前提的。
2、进行大量相关编程练习,用编程语言去实现某一数据结构上的算法(怎么办)
很多时候,理解一个算法很容易,很容易在纸上去模拟一个算法的实现过程。但具体实现,则是另一回事。一定得先自己思考,然后再去看书中给的编程语言实现。
3、“记住”特定情景下,利用某一特定的数据结构,去解决问题 (为什么+怎么办)
每介绍一种数据结构,浙大数据结构与算法的MOOC课程都会有一个实际问题来作为“引子”,回答了“这种数据结构为什么会出现”。有的是为了实现特定的操作,有的是为了时间和空间上(大部分考虑的是时间复杂性)效率的更高(所以,没事的时候,分析一下算法的时间复杂性)。这些东西,我们也须理解记忆。每一数据结构都有其特性,去解决某一类问题,我们需要去记忆,去感悟。
4、形成一个属于自己的知识体系
如何去“记住”(记好笔记,多多复习);在学习过程中,遇到挫折,产生挫败感该如何处理(这个是必然会发生的,总有难以理解不会的地方);如何进行心态方面的调整(欲速则不达,不过也有”敏捷学习“的概念)。
2. 请问c语言中的 数据结构与算法 看那一本书比较好自学的,谢谢
数据结构:严蔚敏,清华大学出版社的,有C语言版,这是泰斗了。
算法就买本MIT出的算法导论,想搞竞赛或者钻研算法就买传说中的黑书《算法艺术与信息学竞赛》,有兴趣时间多,可以通读高德纳(KMP算法中那个K)的《计算机程序设计艺术》
3. 哪些学习数据结构与算法的书籍值得推荐
大学计算机数据结构教材是 严蔚敏版的《数据结构》可以拿来入门。然后可以根据自己的实际情况来安排怎么样学习数据结构。很多人是看一遍书,然后在遇到算法之后再去实现它。在这里列出一些我知道的算法书籍,以供参考。(我也只看过算法导论,编程之美)
1. CLRS 算法导论
算法网络全书,只做了前面十几章的习题,便感觉受益无穷。
2. Algorithms 算法概论
短小精悍,别据一格,准经典之作。一个坏消息: 同算法导论,该书没有习题答案。好消息:习题很经典,难度也适中,只需花点点时间自己也都能做出来。不好也不坏的消息:我正在写习题的答案,已完成前三章,还剩九章约二百道题,顺利的话二个月之后发布。另有中文版名《算法概论》,我没看过,不知道翻译得怎么样。如果有心的话,还是尽量看原版吧,其实看原版与看中文版花费时间不会相差很大,因为大部分时间其实都花费在做习题上了。
作者:向小刚
链接:http://www.hu.com/question/19987046/answer/13945644
来源:知乎
着作权归作者所有,转载请联系作者获得授权。
4. 怎样学好数据结构与算法
1、 有良好的学习兴趣
(1)课前预习,对所学知识产生疑问,产生好奇心。
(2)听课中要配合老师讲课,满足感官的兴奋性。听课中重点解决预习中疑问,把老师课堂的提问、停顿、教具和模型的演示都视为欣赏音乐,及时回答老师课堂提问,培养思考与老师同步性,提高精神,把老师对你的提问的评价,变为鞭策学习的动力。
(3)思考问题注意归纳,挖掘你学习的潜力。
(4)听课中注意老师讲解时的数学思想,多问为什么要这样思考,这样的方法怎样是产生的。
(5)把概念回归自然。所有学科都是从实际问题中产生归纳的,数学概念也回归于现实生活,如角的概念、至交坐标系的产生、极坐标系的产生都是从实际生活中抽象出来的。只有回归现实才能使对概念的理解切实可靠,在应用概念判断、推理时会准确。
2、 建立良好的学习数学习惯。
习惯是经过重复练习而巩固下来的稳重持久的条件反射和自然需要。建立良好的学习数学习惯,会使自己学习感到有序而轻松。高中数学的良好习惯应是:多质疑、勤思考、好动手、重归纳、注意应用。学生在学习数学的过程中,要把教师所传授的知识翻译成为自己的特殊语言,并永久记忆在自己的脑海中。另外还要保证每天有一定的自学时间,以便加宽知识面和培养自己再学习能力。
3、 有意识培养自己的各方面能力
数学能力包括:逻辑推理能力、抽象思维能力、计算能力、空间想象能力和分析解决问题能力共五大能力。这些能力是在不同的数学学习环境中得到培养的。在平时学习中要注意开发不同的学习场所,参与一切有益的学习实践活动,如数学第二课堂、数学竞赛、智力竞赛等活动。平时注意观察,比如,空间想象能力是通过实例净化思维,把空间中的实体高度抽象在大脑中,并在大脑中进行分析推理。其它能力的培养都必须学习、理解、训练、应用中得到发展。特别是,教师为了培养这些能力,会精心设计“智力课”和“智力问题”比如对习题的解答时的一题多解、举一反三的训练归类,应用模型、电脑等多媒体教学等,都是为数学能力的培养开设的好课型,在这些课型中,学生务必要用全身心投入、全方位智力参与,最终达到自己各方面能力的全面发展。
其它注意事项
1、注意化归转化思想学习。
人们学习过程就是用掌握的知识去理解、解决未知知识。数学学习过程都是用旧知识引出和解决新问题,当新的知识掌握后再利用它去解决更新知识。初中知识是基础,如果能把新知识用旧知识解答,你就有了化归转化思想了。可见,学习就是不断地化归转化,不断地继承和发展更新旧知识。
2、学会数学教材的数学思想方法。
数学教材是采用蕴含披露的方式将数学思想溶于数学知识体系中,因此,适时对数学思想作出归纳、概括是十分必要的。概括数学思想一般可分为两步进行:一是揭示数学思想内容规律,即将数学对象其具有的属性或关系抽取出来,二是明确数学思想方法知识的联系,抽取解决全体的框架。实施这两步的措施可在课堂的听讲和课外的自学中进行。
学数学的几个建议
1、记数学笔记,特别是对概念理解的不同侧面和数学规律,教师为备战高考而加的课外知识。
2、建立数学纠错本。把平时容易出现错误的知识或推理记载下来,以防再犯。争取做到:找错、析错、改错、防错。达到:能从反面入手深入理解正确东西;能由果朔因把错误原因弄个水落石出、以便对症下药;解答问题完整、推理严密。
3、记忆数学规律和数学小结论。
4、与同学建立好关系,争做“小老师”,形成数学学习“互助组”。
5、争做数学课外题,加大自学力度。
6、反复巩固,消灭前学后忘。
7、学会总结归类。可:①从数学思想分类②从解题方法归类③从知识应用上分类
学习上占第一,每个同学都可以做到。之所以你占不了第一,主要有两个原因:第一、生活方式、学习方法不正确,第二、没有坚强的毅力。在这里面毅力是第一重要的,学习方法是第二重要的。
5. 如何学习数据结构
学好数据结构首先学好C语言指针,数据机构内在串联全靠指针作用,指针主要难在本身是带地址的变量,再加上指针的指针串联导致很多人误解,先要学会理解,要对计算机的内存结构有个大概了解,对一些常见的进制之间的转化以及字节对齐等有行程基本的认知。
理解概念,建立抽象模型,比如简单的队列,先进先出模式,在设计数据模型的时候,就需要有一个对头和队尾的概念,数据需要从队尾插入队头出来,基本上三个属性就出来了,一个对头指针,一个队尾指针,一个结构体数值,常见的方法有删除清空队列,有插入队列操作,出队操作,创建初始队列操作等等,这样子抽象数据模型,形成自己的思维理解,然后再进行代码设计。
需要变通实践,代码调试变通,数据结构的组合无穷变着写代码。算法的奥妙就是在于变换,放在数据结构也是这个样子,掌握基本的数据机构算法,在学好数据结构的前提下可以学习下一本经典的算法书《算法导论》这个是算法的经典书籍。
学习数据机构不要想着有什么技巧或者方法,把自己调整到最佳的学习状态,方法自然就有了,不要给自己设置什么限制,设置底线只会让自己处在一个围墙之内,学习新东西就是突破自我的一个过程,不要在开始学习的时候给自己过大的压力。
6. 新手如何学习数据结构
要想掌握数据结构与算法要点一般如下:
1、要熟悉数据结构整个大纲。如:
逻辑存储结构:分为线性结构和非线性结构。
线性结构:顺序表、单链表、栈、队列、串、广义数组。
非性结构:二叉树、图。
物理存储结构:分为顺序存储和链式存储。
基本操作:插入、删除、更新、查找,逆转等。
2、要熟悉数据结构各类专有名词含义;
3、掌握时间复杂度的计算或推导(即大O)。
4、重点掌握非线性二叉树的性质推导和证明(这里涉及到了一些数学知识),和图。
多上机调试各章的源码,只有这样才能加深对算法本身存在的思想的体会。学习数据结构其实就是学习算法思想。
7. 学习数据结构与算法需要哪些必备知识
首先得先会一门语言,可以自己动手去实践这些算法,比较基本的入门就是:链表,栈,二叉树和图这些基本的数据结构和排序、查找等,吃透这些,书籍可以看《c语言版的数据结构》,还可以学习下线性代数。然后进阶提高是根据你想从事哪方面的工作,比如游戏开发,可能需要学习八叉树,Perlin噪音等。就这些吧
8. 如何自学数据结构与算法
在学习语言初期时 对数据结构和算法确实是没有太多体会的因为开始时编的程序比较简单 应用数据结构需要一定的水平之后数据结构和算法在大规模程序 提高性能上很有用 开始学习的时候不要急 先把基本的编程例子全做过 编的多了 慢慢就会体会到了开始学习时 实现功能最重要 慢慢的改进 提高效率 用到算法和数据结构
9. 怎么学好数据结构与算法,好难啊
李明杰老师:每周一道算法题 通关算法面试课(超清视频)网络网盘
链接: https://pan..com/s/14GZpVf03Mf9E-YnMrrR4Pw
若资源有问题欢迎追问~