Learn how to efficiently optimize and create algorithms in Java.
Overview
Syllabus
Introduction
- Improve your Java applications with effective algorithms
- Introducing CoderPad challenges
- What is an algorithm?
- How to optimize an algorithm
- Optimize an algorithm in Java
- How to describe the time complexity of an algorithm
- Validate Strings in Java: All-or-nothing properties
- Validate strings in Java: Specific properties
- Normalize strings in Java
- Basic parsing and searching strings in Java
- Apply custom parsing to search algorithms
- Create algorithm-driven strings in Java
- Leverage built-in tools to generate custom data
- Solution: Reverse each word
- Linear search arrays in Java
- Linear search arrays with Java streams
- Binary search arrays in Java
- Aggregate and filter arrays in Java
- Reverse an array in Java
- Solution: Rotate an array
- What is a linked list?
- Using the built-in linked list data structure in Java
- Create a custom data structure for linked list algorithms
- Linked list algorithms: Delete back half of a linked list
- Solution: Sum contents of a linked list
- What is a queue?
- Standard queue operations in Java
- Queue algorithms: Generate binary numbers
- What is a stack?
- Basic stack operations in Java
- Stack algorithms: Theorizing an algorithm
- Stack algorithms: Next greater element
- Stack algorithms: Matching parentheses
- Solution: Evaluate reverse polish notation
- Hash-based structures in Java
- HashMap and HashSet operations in Java
- Leverage the HashSet type in Java algorithms
- Use the HashMap type in Java algorithms
- Solution: Detect a cylic linkedlist
- What is a tree?
- Binary trees in Java
- What are tree traversals?
- Implement tree traversals in Java
- Solution: Find height of binary tree
- Continue optimizing algorithms
Taught by
Kathryn Hodge