Code Brush is a structured repository for organizing completed problems, data structures, sorting algorithms, search trees, and design patterns. This repository is categorized into multiple folders to help with efficient learning and problem-solving.
This directory includes various Abstract Data Types (ADT) implementations such as:
- Linked Lists
- Trees
- Stacks & Queues
- Union-Find Data Structures
This folder contains implementations of sorting algorithms, including:
- BasicSorts: Insertion Sort, Bubble Sort, Selection Sort.
- QuickSorts: QuickSort and its optimized versions.
- MergeSorts: MergeSort, Optimized MergeSort, and Bottom-Up MergeSort.
- OptionalSorts: Additional sorting algorithms like Shell Sort, Bucket Sort, Radix Sort, and Shuffle Sort.
This directory contains tree-based search algorithms and data structures, including:
- Binary Search Tree (BST)
- AVL Tree
- Red-Black Tree
- HashMaps and Symbol Tables
- Tree Traversals
This section contains a curated set of simple problems demonstrating key software design patterns.
This folder contains coding problems categorized as:
- CodingPatterns: Must-do problems based on important coding patterns.
- Easy: Basic problems for warm-up and foundational understanding.
- Advanced: A collection of medium and difficult problems.
.gitignore
: To exclude unnecessary files.README.md
: This documentation file.
|-- codebrush
| |-- ADT
| | |-- Node.java β
| | |-- LinkedList.java β
| | |-- DoubleLinkedList.java
| | |-- Stack.java β
| | |-- Queue.java β
| | |-- QuickFind.java
| | |-- QuickUnion.java
| | |-- WeightedQuickUnion.java
| | |-- PriorityQueue.java
| | |-- BinaryTree.java
| | |-- BinaryHeap.java
| | |-- README.md
| |-- Sort
| | |-- BasicSorts
| | | |-- InsertionSort.java β
| | | |-- BubbleSort.java β
| | | |-- SelectionSort.java β
| | |-- MergeSorts
| | | |-- MergeSort.java
| | | |-- MergeSortOptimised.java
| | | |-- MergeSortBottomUp.java
| | |-- QuickSorts
| | | |-- QuickSort.java
| | | |-- QuickSortOptimised.java
| | |-- HeapSort.java
| | |-- OptionalSorts
| | | |-- ShellSort.java
| | | |-- ShuffleSort.java
| | | |-- RadixSort.java
| | | |-- BucketSort.java
| | |-- README.md
| |-- Search
| | |-- BinarySearch.java
| | |-- TreeNode.java
| | |-- BinarySearchTree.java
| | |-- BinarySearchTreeOrdered.java
| | |-- TreeTraversals.java
| | |-- RedBlackTree.java
| | |-- AVLTree.java
| | |-- SymbolTable.java
| | |-- HashMap.java
| | |-- README.md
| |-- java [MAIN FILE]
| |-- CodingPatterns
| | |-- README.md
| |-- Problems
| | |-- Easy
| | |-- CodingPatterns
| | | |-- README.md
| | |-- Advanced"
|-- README.md
|-- .gitignore
- Ensure code follows a consistent style.
- Add meaningful comments and explanations.
- Structure problems under the correct category.
- Keep
README.md
updated as new features are added.
This project serves as a well-organized learning tool for mastering Data Structures, Algorithms, and Design Patterns. Happy Coding! π