This post provides a foundational overview of sorting algorithms, specifically focusing on Bubble Sort. It covers the problem definition, key properties like stability, and the practical aspects of sorting. For Bubble Sort, the article details its mechanics through an animated illustration, provides a comprehensive complexity analysis (showing its $O(n^2)$ time complexity), and includes a sample Java implementation with explained logic.
2020
Introduction to Bubble Sort
July 31, 2020
2019
Introduction to Algorithm Analysis and Computational Complexity
October 20, 2019
This article provides a comprehensive introduction to algorithm analysis, defining what algorithms are and distinguishing them from actual code implementations. It explores various algorithmic approaches, including deterministic, randomized, optimization, parallel, and distributed paradigms. Furthermore, it examines the critical resources consumed by algorithms—such as time, memory, power, bandwidth, circuitry, idleness, and load—and demonstrates how different data structure implementations (like array-based vs. linked lists) drastically affect performance for operations like insertion and retrieval.