让我们首先澄清这个问题。没有什么简单的方法可以胜任任何工作,但是有一种有效的方法来完成每件事。
让我们尝试通过编程问题来了解简单与高效之间的区别!考虑“搜索排序数组中的元素”的问题。
- 人员A通过使用线性搜索算法解决了上述问题。
- 人员B通过使用二进制搜索算法解决了上述问题。
因此,这里的人A以简单的方式解决了问题,而人B以有效的方式解决了问题。
现在,学习数据结构和算法的有效方法取决于几个因素:
- 您对编程语言和基本DS和Algos的先验知识。
- 您要学习的目的。
- 提供给您的资源。
- 完美的指南!
现在让我们更深入地看一下上面突出显示的每个点:
- DS和Algo的先验知识:如果您已经熟悉诸如数组,链接列表等基本数据结构以及诸如排序,搜索等一些基本算法,那么相对而言,与新手相比,您所花费的时间要少得多您已经了解了基础知识。例如,如果您甚至不理解本文开头提到的编程示例,那么您还有很长的路要走。
- 学习DS和Algo的目的:这还取决于您要提高数据结构知识的目的。有些人为求职面试而学习它们,有些人为竞争性编程而学,有些则是为了获得知识。如果您要准备求职面试,那么您学习的数据结构将非常有限,这是面试中最常被问到的,如果您想成为一名优秀的有竞争力的程序员,那么您将必须专注于复杂的数据结构,例如细分树, Fenwik树,二叉索引树等
- 可用资源:资源在学习任何东西方面都扮演着最重要的角色。您需要一套良好的教程,这些教程的描述性足以清除从基础到高级的所有概念。您还必须回答一些常见问题,以练习所学知识。
- 指南:假设您已经了解了以上三点。您知道要学习的东西,知道要学习的目的,并且您拥有所有的资源和教程。但是您仍然对诸如“从哪里开始?”,“如何开始?”之类的很多事情感到困惑。等等。因此,您需要有人来指导您完成该过程。那一定是有人可以帮助您有效地使用可用资源。
解决上述问题的方法:在GeeksforGeeks中,我们已经有大量基于数据结构和算法的教程和问题的集合,这些教程和问题是由全球一些优秀的竞争程序员编写的。我们也有许多关于数据结构和算法的过去,正在运行和即将举行的课程,这些课程可以在GeeksforGeeks-Courses上找到。
如果您准备面试,我们建议您通过以下链接:
- 放置准备指南
- 分步准备分步指南
- 面试问题中的十大算法
- 面试题中的十大算法套装2
- 如何为顶级跨国公司做准备?
- 须藤安置
–>面试准备档案
如果您是一位有抱负的竞争程序员,则必须访问以下链接:
- 如何开始竞争性编程?
- 如何成为竞争性编程的大师?
- 进行竞争性编程的一种更好的方法
- 编程技巧和窍门
- 编程技巧和窍门|套装2
- 先进的数据结构
- 竞争性编程的十大算法和数据结构
–>竞争编程档案
如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。