This repository is dedicated to my learning journey through Algorithms and Data Structures in Java. I'm currently learning from Grokking Algorithms by Aditya Y. Bhargava. As I learn and implement different algorithms, I will document my progress and share my solutions here, along with unit tests for each algorithm.
So far, the following algorithms have been implemented (src/main/java/dev/mirodil/java_dsa/basics
):
Linear Search is a simple search algorithm that looks for a target value within a list by checking each element one by one.
- Algorithm: Linear search
- Time Complexity: O(n)
Binary Search is a more efficient search algorithm that works on sorted lists by repeatedly dividing the search interval in half.
- Algorithm: Binary search
- Time Complexity: O(log n)
Selection Sort is a simple sorting algorithm that divides the list into a sorted and unsorted part and repeatedly selects the smallest element from the unsorted part.
- Algorithm: Selection sort
- Time Complexity: O(n^2)