Best of AlgorithmsMarch 2025

  1. 1
    Article
    Avatar of kirupaKirupa·1y

    Bloom Filter: A Deep Dive

    A Bloom filter is a probabilistic data structure used to efficiently test whether an item exists in a dataset. Unlike hash tables that can be both time and memory intensive, Bloom filters use a bit array and multiple hash functions to store 'fingerprints' of data, ensuring fast and memory-efficient operations. However, they are not without a tradeoff; they can tell with certainty if an item does not exist but can only give a probable answer if the item is present, potentially leading to false positives. Bloom filters are valuable in applications requiring quick lookups, where memory efficiency is a priority.

  2. 2
    Article
    Avatar of dailydoseofdsDaily Dose of Data Science | Avi Chawla | Substack·1y

    Time Complexity of 10 ML Algorithms

    Understanding the run-time complexity of machine learning algorithms is essential for efficient model implementation. Popular algorithms like SVM and t-SNE have limitations with large datasets due to their cubic and quadratic time complexities, respectively. Accurate knowledge of these complexities helps in selecting the right algorithm and optimizing performance.

  3. 3
    Video
    Avatar of youtubeYouTube·1y

    Do this to 10x your DSA

    To learn data structures and algorithms (DSA) efficiently, avoid reading comprehensive books front to back. Focus on recognizing patterns and practice regularly. Timing is crucial—if you can't solve a problem in 30 minutes, study the solution and understand it. Consistently work on at least one question daily and review multiple solutions. Choose a programming language you are comfortable with as DSA is language agnostic. Use study hacks like flashcards to remember algorithms and prioritize daily practice in the morning. Balancing DSA with other skills and activities is essential for career growth.

  4. 4
    Article
    Avatar of hnHacker News·1y

    UI Algorithms: A Tiny Undo Stack

    The post discusses a simple yet effective approach to implementing an undo stack for user interfaces, especially in drawing applications. It explains the difference between undo stacks and version histories, highlights issues with traditional pointer-based implementations, and offers a solution using two stacks (undoStack and redoStack) without indexing. The implementation includes making actions idempotent using JavaScript's structuredClone() to avoid issues with closures and references.