Posts

Showing posts with the label Algorithms

Insertion Sort — Theory & Code

Image
Insertion Sort is a simple, intuitive algorithm ideal for small or nearly sorted datasets. In this blog post, we’ll delve deep into the workings of Insertion Sort—covering the core concept, step-by-step visualization, Java implementation, and performance evaluation. 1. What is Insertion Sort? Insertion Sort builds a sorted array one element at a time. You pick the next element from the unsorted portion and insert it into its correct position within the sorted portion, shifting elements as needed. 2. Step-by-Step Illustration Unsorted array: [5] [2] [4] [6] [1] [3] Iteration 1: Sorted: [5] Take next: 2 → insert before 5 Array becomes: [2] [5] [4] [6] [1] [3] Iteration 2: Sorted: [2] [5] Next: 4 → shift 5 to right, insert 4 → [2] [4] [5] [6] [1] [3] Continue until sorted. Diagram (ASCII): Initial: 5 | 2 4 6 1 3 Step 1: 2 5 | 4 6 1 3 Step 2: 2 4 5 | 6 1 3 Step 3: 2 4 5 6 | 1 3 ... Final: 1 2 3 4 5 6 3. Java Implementat...

Cycle Sort in Java — An In-Depth Guide

Image
When preparing for interviews at top companies like Amazon, Google, and Microsoft , you will often encounter problems that require efficient in-place sorting . One such elegant yet lesser-known algorithm is Cycle Sort . Unlike traditional sorting algorithms, Cycle Sort minimizes the number of writes, making it highly efficient when write operations are costly. 🔹 What is Cycle Sort? Cycle Sort is an in-place, comparison-based sorting algorithm. It works by placing each element directly in its correct position using the concept of cycles . Once an element is placed in the right spot, we continue the cycle until the entire array is sorted. Key Features: Minimizes the number of write operations (best choice when memory writes are expensive). Performs sorting in-place with constant space complexity (O(1)). Has a time complexity of O(n²), which makes it less practical for large datasets. 🔹 How Cycle Sort Works Let’s break the algorithm into simple steps: Sta...