Learn how to efficiently optimize and create algorithms in Java.
Overview
Syllabus
Introduction
- Improve your Java applications with effective algorithms
- 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
- Challenge: Reverse each word
- 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
- Challenge: Rotate an array
- 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
- Challenge: Delete kth node from the end of the list
- Solution: Delete kth node from the end of the 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
- 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
- Challenge: Detect a cyclic linked list
- Solution: Detect a cyclic linked list
- What is a tree?
- Binary trees in Java
- What are tree traversals?
- Implement tree traversals in Java
- Challenge: Develop a search algorithm
- Solution: Develop a search algorithm
- Continue optimizing algorithms
Taught by
Kathryn Hodge