浅谈如何学习数据结构与算法[@初学者]
导语 所谓“数据结构”,一般来说是“数据结构与算法”,是NOIPer/NOIer、本科生、硕士生、程序员都会学的一门课程,是程序员的必修课。 数据结构为什么要学? 我们使用计算机,希望它能帮助我们解决各种各样的问题,但随着发展—— 我们希望它运行得更快, 希望它能处理更多数据,希望它做一些原本不可能的事情…… 计算机科学不断改变着这个世界,但代价可能是高昂的。 好的算法设计可以做得更好,而且可能很便宜;劣质的算法就不得不花费更高昂的代价。 事实上,我们可能认为提高算力就能忽略劣质算法的影响。诚然,我们也在努力提高计算机算力,但即使强如超级计算机,也无法挽救一个错误的算法。 希望很多人能正视这个问题,因为数据结构与算法真的值得学习。 学科基础 学习数据结构与算法不需要太多的基础知识,但需要你熟练掌握一门编程语言。 至少给你C/C++/Java/Python的代码你能看得懂,让你用自己熟练的编程语言能轻松实现,这样就很棒了。 至于二分查找、冒泡排序、数组之类的内容我觉得是一个刚刚入门计算机科学的孩纸就应该会的,所以就很基础,没啥可说的,该会,对吧?(比如你连冒泡排序都不会,你咋学快排啥的,对吧?) 最好有一些经验积累,我在学数据结构之前就能在一定程度上运用Java的集合框架,看过比如java.util.ArrayList啊,java.util.LinkedList这样的类的源码