
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore Java algorithms and data structures to optimize code performance, covering arrays and big O, sorting techniques, stacks and queues, search methods, and binary trees and binary search trees.
Explore arrays in Java: declare a fixed string array, initialize elements, and print values with a loop. They are not dynamic and must hold one type; 2d arrays are next.
Master 2d arrays in Java by declaring, initializing, and accessing elements with zero-based indices, and printing values; understand bounds and out-of-range errors to prevent crashes.
Analyze algorithm performance by measuring time complexity with big O notation and memory usage, emphasizing worst-case bounds. Compare constant, linear, logarithmic, quadratic, and exponential complexities with practical examples.
Learn Java's array list, a dynamic array with constant time access, resizing when needed, and a clear distinction between size and capacity. Practice adding, removing, and inspecting the backing array.
Discover how search algorithms locate values in arrays, starting with linear search and then binary search, highlighting their strengths while exploring this domain within Java data structures.
Iterate an array to perform a linear search, returning the index or -1. Its time grows linearly with data size and it suits unsorted data like linked lists.
Master binary search by applying it to sorted data, using the middle element to halve the search space, and recursively narrowing until the target is found in O(log n) time.
Learn to implement iterative and recursive binary search in Java on a sorted array, using start, end, and midpoint to find an index or return -1.
Explore sorting algorithms in Java, from bubble, selection, insertion to merge and quicksort, and compare time, space, stability, and recursive versus non-recursive approaches.
Explore in-place selection sort in Java, the simplest sorting algorithm that builds a sorted list by selecting the minimum element and swapping it into its ascending place, unlike out-of-place methods.
Apply selection sort in Java by stepping through a list of integers, selecting the minimum element, swapping, and tracing the process in Eclipse, while understanding the n squared time complexity.
Learn bubble sort in Java by sorting an integer array with two nested loops and swaps, and optimize with an early break when no swaps occur during a pass.
Explore the insertion sort algorithm in Java, building a sorted array from an unsorted list by comparing each element with preceding ones and inserting it in place.
Master recursion in Java by showing how a method calls itself, builds the call stack, and uses a base case with a count that decreases to prevent stack overflow.
Implement merge sort in Java by applying recursion to divide the array, reach base cases, and merge sorted halves into a final ordered array.
Explore the merge sort implementation through recursive division, partitioning, and merging of left and right subarrays, using start, end, and mid indices to produce a sorted array.
Discover how Java quicksort uses the last element as the pivot, partitions the array, and recursively sorts left and right subarrays to final placement.
Implement quicksort in Java by choosing a pivot, partitioning the array with left and right pointers, swapping elements, and recursively sorting subarrays until the base case.
Explore sorting algorithms from bubblesort to quicksort and learn when to use stable versus non-stable sorts. Build a toolbox to choose the right method for small or large data.
Learn how stacks implement last-in, first-out data organization in Java using push, pop, peak, empty, and search operations, demonstrated with a stack of book names.
Explore how stacks power practical Java algorithms and data structures applications like string reversal, balanced parentheses checks, and undo/redo in text editors, with concrete examples using two stacks.
Practice stack operations with a France-ioi challenge to move discs from zone one to zone three, respecting the rule that a larger disk cannot sit on a smaller one.
Apply stack operations to solve a challenge by moving items between positions, maintaining order and preventing breaks, guided by a library's diblasi function and animated submission.
Explore queues in Java through the first-in, first-out principle, learn enqueue, dequeue, and peek operations, and implement a linked-list based queue in Java to contrast with stacks.
Learn to implement a queue in Java via a linked list implementation, performing enqueue, dequeue, and peek, plus contains for efficient FIFO data management.
Explore trees as non-linear data structures organized in a hierarchy, covering root and leaf nodes, parents and children, siblings, and concepts like depth, height, and subtree.
Explore how binary search trees organize data with at most two children and the root-left-right ordering. Learn how lookups move left or right, with best-case O(log N) time.
Implement a binary search tree in Java by defining a node class with left and right children, then add insert, display, search, and remove methods with successor and predecessor helpers.
Explore hash tables in Java by mapping key-value entries using hash codes, modulus to index into a ten-slot table, and resolving collisions with chaining via linked lists.
Explore how to implement a hash table in Java, using put, get, and remove to store key-value pairs, manage collisions, and analyze performance with capacity and hash codes.
Welcome to the Java Algorithms & Data Structures Course, your gateway to mastering the art of efficient problem-solving and data management in Java. With this comprehensive course, you will gain the knowledge and skills needed to excel in programming challenges, technical interviews, and real-world software development.
Whether you're a beginner or an experienced programmer, this course will take you from the basics to mastery. Here's why you should enroll:
The course is taught by a seasoned instructor with a strong background in computer science and extensive teaching experience.
We've designed the course to be 2023 ready, ensuring you learn the latest tools and technologies used in Java programming, including Java 17 and the latest Collections framework.
This course doesn't cut any corners; it offers beautifully detailed presentations, coding exercises, real-world projects, downloadable resources, and more. We've left no stone unturned to make your learning experience top-notch.
The curriculum has been meticulously crafted based on years of experience teaching at the university level and incorporates comprehensive student testing and feedback.
Join thousands of successful students who have learned to code with our courses. Many of them have gone on to become professional developers or start their own tech ventures.
The course is constantly updated with new content and projects, and we take student feedback seriously. You have the opportunity to shape the future of the course.
We'll take you step-by-step through engaging video tutorials and teach you everything you need to know to understand Java Algorithms & Data Structures and succeed in the industry.
In this comprehensive course, you'll explore a wide array of essential tools and technologies in Java algorithms and data structures, you will:
Master Java arrays, sorting algorithms, and data organization.
Explore linked lists, stacks, and queues for real-world applications.
Efficiently search for elements and optimize code complexity.
Dive into binary search trees and hash tables for rapid data retrieval.
Hone problem-solving skills with tree traversals and more.
And SO much more!
With the knowledge gained in this course, you'll be well-prepared to tackle coding challenges, technical interviews, and real-world programming tasks with confidence.
Enroll today and get ready for:
Engaging and informative video lectures
Multiple hours of university-level instruction
Hands-on assignments and projects
Quizzes to reinforce your learning
Interactive coding exercises
Downloadable resources and cheatsheets
Tailor-made articles for further exploration
We're excited to have you as part of Evergreen Programming. So what are you waiting for? Click the buy now button and join this world class Java Algorithms & Data Structures course.
See you inside.