Java Algorithms
2h 45mGeneral2021-11-12
Authors

Kathryn Hodge
Software Developer
Course details
Algorithms are one of the fundamental pillars in any software application, as they give programs a set of instructions to perform a task. In this course, Kathryn Hodge aims to help you create better Java programs by using efficient algorithms. She starts with explaining the basics, detailing what makes a given algorithm effective as well as how to make informed assumptions about their data to create more efficient algorithms. She then focuses on how to create algorithms that work with different types of data, including strings and arrays, and how to leverage data structures to make their algorithms more efficient. Many algorithms are built into the Java language, and Kathryn shows how to use these—as well as how to create your own custom algorithms—so you can work with your data in exactly the way you want.
Skills covered
JavaOracleProgramming LanguagesSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Improve your Java applications with effective algorithms
- 02 - What is an algorithm
- 03 - How to optimize an algorithm
- 04 - Optimize an algorithm in Java
- 05 - How to describe the time complexity of an algorithm
1. String Algorithms
- 06 - Validate Strings in Java - All-or-nothing properties
- 07 - Validate strings in Java - Specific properties
- 08 - Normalize strings in Java
- 09 - Basic parsing and searching strings in Java
- 10 - Apply custom parsing to search algorithms
- 11 - Create algorithm-driven strings in Java
- 12 - Leverage built-in tools to generate custom data
- 13 - Challenge - Reverse each word
- 14 - Solution - Reverse each word
2. Array Algorithms
- 15 - Linear search arrays in Java
- 16 - Linear search arrays with Java streams
- 17 - Binary search arrays in Java
- 18 - Aggregate and filter arrays in Java
- 19 - Reverse an array in Java
- 20 - Challenge - Rotate an array
- 21 - Solution - Rotate an array
3. Linked List Algorithms
- 22 - What is a linked list
- 23 - Using the built-in linked list data structure in Java
- 24 - Create a custom data structure for linked list algorithms
- 25 - Linked list algorithms - Delete back half of a linked list
- 26 - Challenge - Delete kth node from the end of the list
- 27 - Solution - Delete kth node from the end of the list
4. Queue and Stack Algorithms
- 28 - What is a queue
- 29 - Standard queue operations in Java
- 30 - Queue algorithms - Generate binary numbers
- 31 - What is a stack
- 32 - Basic stack operations in Java
- 33 - Stack algorithms - Theorizing an algorithm
- 34 - Stack algorithms - Next greater element
- 35 - Stack algorithms - Matching parentheses
5. Algorithms for Hash-Based Structures
- 36 - Hash-based structures in Java
- 37 - HashMap and HashSet operations in Java
- 38 - Leverage the HashSet type in Java algorithms
- 39 - Use the HashMap type in Java algorithms
- 40 - Challenge - Detect a cyclic linked list
- 41 - Solution - Detect a cyclic linked list
6. Tree Algorithms
- 42 - What is a tree
- 43 - Binary trees in Java
- 44 - What are tree traversals
- 45 - Implement tree traversals in Java
- 46 - Challenge - Develop a search algorithm
- 47 - Solution - Develop a search algorithm
Conclusion
- 48 - Continue optimizing algorithms