新的一天,天刚刚放亮,吴明就醒来了。他感到自己的精神特别旺盛,仿佛整个世界都为他而生。
他打开窗户,深深地吸了一口清新的空气,感受到清晨的第一缕阳光洒在脸上,心情愉悦无比。
“今天是新的一天,我要好好利用时间,努力学习,追求更高的成就!”吴明对自己说道,信心满满。
室友们陆续醒来,看到吴明早早起床,一个个不解地询问起来。
“吴明,你怎么这么早就起来了?”时霄权睁开眼睛,疑惑地问道。
“早起是为了争取更多的时间来学习,我们要一起努力,为了ICPC比赛做好准备。”吴明坚定地说道。
他打开笔记本,开始计划自己的学习和生活。
心想:”我要从哪门课开始复习呢?
我可以先从高等数学开始,这门课程是基础中的基础,掌握好了,对之后的学习会很有帮助。
那数据结构和计算机引论呢?这两门课程也很重要啊。
而且ACM测验也不知道什么时候,ACM肯定是偏数据结构的。
还是先学习数据结构这门课程吧,那可是关于我要参加ICPC的前提,现在离期末还有段时间,其它的课程等看完数据结构之后再学也不迟“
他在宿舍里拿出笔记本和教材,开始认真地研究起来。
吴明专心地研究着数据结构的知识,他在教材上标注着重点,一遍又一遍地练习着相关的编程题目。
“数据结构有什么特别重要的地方呢?
数据结构是编程的基础,它决定了程序的效率和灵活性。
如果我们能够掌握好数据结构,就会对解决实际问题有很大帮助。
数据结构的表现形式有链表,树、图。
链表有最简单的单向链表跟复杂的双向循环链表,树常见的有二叉树、非二叉树,非二叉树,而且他们又分为很多类型的树,图分为有向图、无向图、带权图、不带权图。
有些什么算法呢?
排序、分治法结合的归并排序与快速排序。
直接遍历链表,查找慢,增删快。链表反转、合并、删除。
树的前序、中序、后序遍历。树编号以列表示。图的表示邻接矩阵、邻接表
树跟图的遍历算法还有深度优先搜索(DFS)、广度优先搜索(BFS)。
最难的部分应该是理解和应用递归和动态规划。这需要有很强的逻辑思维和抽象能力“
看完了基本的书籍内容,已经过去了一个小时,感觉理解起来也没有什么难得呀。吴明打算实践一下,只有实践才能出真知,实践是检验真理的唯一标准,而且在实践中说不定还能有新的收获。
想干就干,吴明拿着电脑打开编译器,对着书上的示例就在编译器中一顿输出,并且打开了两个编译界面。
链表的反转,快速排序。吴明迅速写下了代码,运行后,得到了正确的结果成功地实现了链表的反转结果跟快速排序结果。
接下来,吴明又写下了链表的其它算法跟树与图的前中后序遍历算法,深搜、广搜等,一行行地在编译器中输入着代码,验证着自己的理论知识,实践的检验也没有错误。
最终还写了简单dp算法(0/1背包问题)。
数据结构的算法实则可以通过模型结构去解决实际问题,还可以把问题通过数学推导的方式进行简便而后迅速运算得出结果,其中还蕴含着计算机运行与内存之间的空间换时间以及时间换空间的概念。
要不要再看看贝叶斯公式跟BP神经网络呢?想了想,书上也没有案例就不看了。今天学的这些估计也算对数据结构入门了,应该能通过ACM最基础的测验吧。