Algorithms and data structures are crucial for application performance. This course teaches you tools that you can use to build efficient applications. It starts with an introduction to algorithms and explains bubble, merge, quicksort, and other popular programming patterns. You’ll also learn about data structures such as binary tree, hash table, and graphs. The course progresses to advanced concepts, such as algorithm design paradigms and graph theory.
- Learn about space and time complexities, expressing them using big O notation
- Work with classic sorting algorithms, such as merge and quicksort, using Java data structures
- Correctly implement basic and complex data structures (like hash tables and binary trees)
- Learn about higher-level design paradigms like divide and conquer and dynamic programming
- Apply powerful string matching techniques and optimize your application logic
- Master graph representations and learn about different graph algorithms, such as cycle detection, traversal, and shortest path
For an optimal experience, we recommend the following hardware configuration:
- Processor: Intel Core i3 processor
- Memory: 8 GB RAM or more
- Hard Disk: 10 GB
- An Internet connection
- Operating system: Windows 8 64–bit or MacOS
- A text editor: Notepad++
- A terminal: Command Prompt or PowerShell on Windows or Terminal on MacOS
- A run-time environment: Java Runtime Environment(JRE) 1.6 or higher
- A software development kit: Java SE Development Kit, JDK 8 (or a later version)