This repository contains implementations, explanations, and practice materials for fundamental Data Structures and Algorithms, written in Java.
It is designed to serve both academic purposes and a personal portfolio, and it will continue to grow over time with additional Java-based coding exercises and algorithm implementations.
This repository focuses on core data structure and algorithm concepts, implemented step by step to emphasize understanding over memorization.
- Selection Sort
- Insertion Sort
- Merge Sort
- Bubble Sort
- Linear Search
- Binary Search
- Binary Search Tree (BST)
- Node insertion logic and structural properties
Future updates will include more advanced data structures and algorithmic problem-solving exercises implemented in Java.
The repository is organized using a branch-based structure, where each topic is isolated to keep concepts clean and focused.
-
main
Contains the general project structure and documentation.
-
project/binary-search-tree
Binary Search Tree implementation with detailed insertion logic and structural behavior.
-
project/merge-sort
Merge Sort implementation using the divide-and-conquer approach.
-
project/insertion-sort
Insertion Sort implementation and algorithm walkthrough.
-
lesson/selection-sort
Selection Sort explanation and Java implementation.
-
lesson/searching-algorithms
Basic searching algorithms with theoretical explanations.
This structure allows each algorithm or data structure to be studied independently without mixing unrelated concepts.
| Algorithm / Structure | Best Case | Average Case | Worst Case |
|---|---|---|---|
| Selection Sort | O(n²) | O(n²) | O(n²) |
| Insertion Sort | O(n) | O(n²) | O(n²) |
| Merge Sort | O(n log n) | O(n log n) | O(n log n) |
| Binary Search | O(1) | O(log n) | O(log n) |
| BST Search | O(log n)* | O(log n)* | O(n)** |
- Balanced tree
- Unbalanced tree
- Strengthen understanding of data structures and algorithms
- Practice Java-based algorithm implementations
- Prepare for exams and technical interviews
- Build a clean and evolving reference repository
This repository is actively maintained and will be expanded with new Java coding exercises, problem-solving examples, and algorithm variations.
- Programming Language: Java
- Version Control: Git & GitHub
Tunahan Türker Ertürk
Software Engineering Graduate