菜鸟的it之路-起航
之前在知乎上看见怎么学习数据结构下一位答主的回答,他引用了N.Wirth(沃斯)的话:程序=数据结构+算法。(哈,菜鸟无法验证这句话的正确性有多大)但毫无疑问的是,数据结构应当是一名菜鸟程序狗要重点学习的东西,是不可忽略的一部分。
所以,这篇随笔我将列出接下来一段时间我的数据结构学习计划-菜鸟的爬行路之数据结构:
菜鸟的爬行路之我的数据结构学习计划
大体来讲,在学习数据结构的基础时,应当注重两件事:
按照quora上的大牛来讲就是,第一件事是试着把数据结构图形化,视觉化。在直觉上对于数据结构有个大致映像使用它是怎样的感受,抽象上和具体实现上是什么样子的.这就是最重要的事情.并且无论是对于简单的队列,栈还是天杀的平衡树都很重要而且有效.把数据结构画出来,在你的脑袋瓜里面就能想象出来,总之,你需要做的就是,直观的去了解这些数据结构.
那么第二件事就是学习什么时候用什么样的数据结构和算法,现在对我来说很难。不过可以使我认识到当真正处理到现实问题的时候或许才能掌握某些数据结构,比如哈希表.
接下来就是具体的实施步骤了。
第一,找一二本优秀的数据结构书籍,看完一个数据结构就使用c#语言将它实现,不懂就借助搜索引擎查看其他人优秀的数据结构源码。值得注意的是要重点标记使自己困惑的地方,隔个一段时间,就拿出来再练习练习。
这是我接下来将用45天学习数据结构的知识点顺序:
学习使用顺序表-学习使用单链表-学习使用双向链表-使用循环链表-比较不同算法的算法效率
学习使用堆栈-用顺序栈解决堆栈-学习使用链栈解决堆栈
学习认识队列-学习使用顺序对列-学习使用链队列
学习认识串-学习使用顺序存储解决串
学习认识数组-学习使用特殊矩阵-学习使用稀疏矩阵
学习认识二叉树-学习使用二叉树的存储使用-学习使用二叉树的遍历方法及递归的实现-学习用二叉树解决快速搜素磁盘文件中记录的问题-认识最优二叉树-哈夫曼树
学习认识数-学习认识树的存储-学习数,森林与二叉树的转换-学习解决树和森林的遍历问题-应用数
认识图-学习用邻接矩阵解决图的编程问题-学习邻接表解决图的编程-学习解决图的遍历问题-学习图的最短路劲
认识排序-插入排序-选择排序-交换排序-归并排序-分配排序
线性表查找技术-哈希表查询计划
第二对这些数据结构加以运用,可以在 google 上搜索“某个数据结构 + ACM”的题目-这些题目都是数据结构的运用,甚至有这些数据结构的变形。期间可以学到的数据结构和算法做小软件玩儿,例如压缩软件,五子棋之类的。
这些学习看完后,接着刷《算法导论》,当然这是几个月后的事了。以后再写
注:很多计划都是看了知乎上精华答案里而指定的。哈没事多逛逛知乎,还是会有收获的。
菜鸟的it之路-起航的更多相关文章
- JVM菜鸟进阶高手之路十(基础知识开场白)
转载请注明原创出处,谢谢! 最近没有什么实战,准备把JVM知识梳理一遍,先以开发人员的交流来谈谈jvm这块的知识以及重要性,依稀记得2.3年前用solr的时候老是经常oom,提到oom大家应该都不陌生 ...
- JVM菜鸟进阶高手之路十三(等你来战!!!)
转载请注明原创出处,谢谢! 前几天有个朋友问了我个问题,下面给大家分享下,希望大家积极在评论区进行评论留言,等你来战!!! 先来个趣味题,热身下,引出后面的jvm题目. 地上的影子是那个人的? 地上的 ...
- JVM菜鸟进阶高手之路十四:分析篇
转载请注明原创出处,谢谢! 题目回顾 JVM菜鸟进阶高手之路十三,问题现象就是相同的代码,jvm参数不一样,表现的现象不一样. private static final int _1MB = 1024 ...
- 1.Magicodes.NET框架之路——起航
1.Magicodes.NET框架之路--起航 前言 从事开发也好几年了,并且最近一直在做架构搭建的工作.这些时间,最大的感悟就是: 只有自己理解了的才是自己的. 对架构这块,若欲立之,必先破之. 故 ...
- JVM菜鸟进阶高手之路一[z]
https://mp.weixin.qq.com/s/qD1LFmsOiqZHD8iZX97OfA? 问题现象 代码如下,使用 ParNew + Serial Old 回收器组合与使用 ParNew ...
- 初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)
初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像 ...
- JVM菜鸟进阶高手之路二(JVM的重要性,Xmn是跟请求量有关。)
转载请注明原创出处,谢谢! 今天看群聊jvm,通常会问ygc合适吗? 阿飞总结,可能需要2个维度,1.单位时间执行次数,2.执行时间 ps -p pid -o etime 查看下进程的运行时间, 17 ...
- 一个编程菜鸟的进阶之路(C/C++)
学编程是一条不归路,但我义无反顾.只能往前冲,知道这个过程是痛苦的,所以我开通这个博客,记录自己在编程中遇到的问题和心得,一是希望可以帮助跟我一样遇到同样问题的人,二是把这作为对自己的勉励及回忆:
- 菜鸟入门Linux之路(方法论浅谈)
Linux是为人熟知的OS之王,已"统治"世界.要想学好绝非易事. 作为菜鸟,可以与Linux亲密接触的方法很多,如视频.书籍.各种企培资料等等,如今的在线教育也如火如荼. 总结说 ...
随机推荐
- [国嵌攻略][070][GDB调试程序]
GDB是GNU发布的一款功能强大的调试工具.GDB主要完成下面三个方面的功能: 1.启动被调试的程序. 2.让被调试的程序在指定的位置停住. 3.当程序被停住时,可以检测程序状态. GDB使用流程 1 ...
- MLlib--决策树
转载请标明出处http://www.cnblogs.com/haozhengfei/p/d65ab6ccff684db729f44a947ac9e7da.html 决策树 1.什么是决策树 决策 ...
- 邓_php_笔试!!!
函数总结: ---------------------------------------------------------------------- 数组: 1.数组转换为字符串: implode ...
- dedecms_插件
../dede/adbaoming.php../dede/baoming_edit.php../dede/templets/baoming_main.htm
- 怎么解决ERROR in Node Sass does not yet support your current environmen问题?
好久没有重新安装node.js,昨天和小伙伴们一起安装,由于自己是在网上自行下载的node,安装地比较顺利,但另外两个小伙伴用的共享文件夹里自带的node,却是屡次碰到问题,快被逼疯,在运行Vue时总 ...
- LindDotNetCore~Polly组件对微服务场景的价值
回到目录 Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员! App vNext:https://github.com/App-vNext GitHu ...
- js_3_for_if_try
在js中有哪些特殊变量? null 指向一个空地址,一个特殊的地址 var u 定义了一个特殊变量u,类型未定义,boolean(u)=false js中的for循环是什么样子? 对列表: for(v ...
- js禁止开发者工具
$(document).keydown(function() { return key(arguments[0]) }); function key(e) { //f12 var keynum; if ...
- junit测试延伸--私有方法测试
关于junit测试的延伸,这里有类概念级别的测试,继承类的测试,接口的测试,抽象类的测试,关于这些类级别的测试,这里我就不做多的赘述了. 关于上面的几个测试就是说,我们不应该单纯的去测试类中的一些方法 ...
- base64_encode与base64_decode
base64_encode 编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! base64_encode() returns 使用 base64 对 data 进行编码. ...