让我们首先澄清这个问题。没有任何简单的方法可以擅长任何事情,但有一种有效的方法可以做到一切。
让我们试着借助一个编程问题来理解简单和高效之间的区别!考虑“在已排序数组中搜索元素”的问题。
- Person A 通过使用线性搜索算法解决了上述问题。
- B 人通过使用二分搜索算法解决了上述问题。
所以,这里的人 A 以简单的方式解决了问题,而人 B 以有效的方式解决了问题。
现在,学习数据结构和算法的有效方法取决于几个因素:
- 您对编程语言和基本 DS 和算法的先验知识。
- 你想学习它的目的。
- 可供您使用的资源。
- 一个完美的指南!
现在让我们更深入地了解上面强调的每一点:
- DS 和算法的先验知识:如果您已经精通基本数据结构(如数组、链表等)和一些基本算法(如排序、搜索等),那么与完全新手相比,您将花费更少的时间你已经知道基础知识了。例如,如果您甚至不理解文章开头提到的编程示例,那么您还有很长的路要走。
- 学习DS和Algo的目的:这也取决于你想提高数据结构知识的目的。有些人学习它们是为了求职面试,有些是为了竞争性编程,有些是为了获得知识。如果您正在准备工作面试,那么您只有有限的一组数据结构可以学习哪些是面试中最常见的问题,如果您想成为一名优秀的有竞争力的程序员,那么您将不得不专注于复杂的数据结构,例如段树, Fenwik 树、二叉索引树等。
- 可用资源:资源在学习任何东西中起着最重要的作用。您需要一组良好的教程,这些教程的描述性足以清除从基础到高级的所有概念。你还必须有一套流行的问题来练习你所获得的知识。
- A指南:假设您已经弄清楚了以上三点。你知道你想学习的东西,你知道你想学习的目的,你也有所有的资源和教程来这样做。但是您仍然对“从哪里开始?”、“如何开始?”等很多事情感到困惑。等等。所以,你需要有人指导你完成这个过程。也就是说,必须有人帮助您以有效的方式使用可用资源。
上述问题的解决方案:在GeeksforGeeks ,我们已经收集了大量基于数据结构和算法的教程和问题,这些教程和问题由全球一些优秀的有竞争力的程序员编写。我们还有许多过去的、正在运行的和即将到来的数据结构和算法课程,可以在GeeksforGeeks-Courses上找到。
如果您正在准备面试,我们建议您访问以下链接:
- 安置准备指南
- 安置准备分步指南
- 面试问题中排名前 10 的算法
- 面试题中的前 10 名算法 | 2套
- 如何为顶级跨国公司做准备?
- 须藤放置
如果您是一名有抱负的竞技程序员,则必须访问以下链接:
- 如何开始竞争性编程?
- 如何成为竞技编程高手?
- 一种更好的方法来进行竞争性编程
- 给有竞争力的程序员的提示和技巧
- 有竞争力的程序员的技巧和窍门 | 2套
- 高级数据结构
- 竞争性编程的 10 大算法和数据结构
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。