---
title: Search Algorithms
description: This topic covers techniques for retrieving specific information stored within various data structures, ranging from simple linear searches to advanced tree and graph traversals. Learners will understand how to implement and compare the efficiency of different search methodologies.
category: programming-tech
subcategory: algorithms-and-data-structures
difficulty: beginner, intermediate, advanced
url: /subject/search-algorithms
---

# Search Algorithms

This topic covers techniques for retrieving specific information stored within various data structures, ranging from simple linear searches to advanced tree and graph traversals. Learners will understand how to implement and compare the efficiency of different search methodologies.

## Available Resources

1 Books • 2 Courses • 6 Websites

## Websites

### 1. CP-Algorithms

Breadth-first search article from CP-Algorithms, the community-maintained English edition of e-maxx. Covers the queue-based algorithm, its O(n+m) complexity, shortest paths in unweighted graphs, path reconstruction, and applications such as finding shortest cycles, with C++ code and practice problems.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://cp-algorithms.com/graph/breadth-first-search.html

**Tags:** breadth-first-search, graph-algorithms, shortest-paths, competitive-programming

### 2. Visualgo

Interactive visualizations of data structures and algorithms built by Steven Halim at the National University of Singapore, animating sorting, trees, graphs, and shortest paths step by step so learners can trace how each algorithm changes state.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://visualgo.net/en

**Tags:** algorithm-visualization, data-structures, sorting, graph-algorithms, interactive

### 3. Nearly All Binary Searches and Mergesorts Are Broken

**Author:** Joshua Bloch

Joshua Bloch's 2006 report on the integer-overflow bug that survived two decades in Jon Bentley's proven-correct binary search and nine years in the JDK, giving the corrected midpoint computation and explaining why testing never surfaced it. Short and tactical, but the primary source for the single most important practical lesson in this topic — binary search is famously easy to get subtly wrong.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://research.google/blog/extra-extra-read-all-about-it-nearly-all-binary-searches-and-mergesorts-are-broken/

**Tags:** binary-search, integer-overflow, software-correctness, java

### 4. Introduction to the A* Algorithm (Red Blob Games)

**Author:** Amit J. Patel

Amit Patel's interactive walkthrough builds breadth-first search up into Dijkstra's algorithm, greedy best-first search and A*, animating how each frontier expands across a grid so the tradeoffs between them are visible rather than asserted.

**Difficulty:** Beginner | **Language:** English | **Price:** Free

**Link:** https://www.redblobgames.com/pathfinding/a-star/introduction.html

**Tags:** a-star, pathfinding, dijkstra, breadth-first-search, heuristic-search

### 5. visualgo.net

Visualgo.net is an interactive visualization platform for learning data structures and algorithms, offering animated, step-by-step demonstrations of core structures (arrays, lists, stacks, queues, trees, graphs) and algorithms with explanations.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://visualgo.net

**Tags:** websites, technology-computer-science, algorithms

### 6. LeetCode

Online judge with thousands of algorithm and data-structure problems sorted by difficulty, topic and company, plus timed contests, discussion threads and study plans. Regular practice builds fluency with common interview problem patterns and writing correct, efficient code under time pressure.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://leetcode.com

**Tags:** coding-interviews, algorithm-practice, data-structures, online-judge, problem-patterns

## Courses

### 1. Introduction to Algorithms (MIT 6.006)

**Author:** Erik Demaine, Jason Ku, Justin Solomon

Modeling computational problems and solving them with core algorithms and data structures: sorting, hashing, binary trees, heaps, graph search, shortest paths and dynamic programming. 32 lecture videos, notes, problem sets and exams with solutions teach asymptotic analysis and algorithm design.

**Difficulty:** Intermediate | **Price:** Free

**Link:** https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-spring-2020/

**Tags:** data-structures, asymptotic-analysis, graph-algorithms, dynamic-programming, sorting

### 2. Algorithms, Part I

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

All the features of this course are available for free. People who are interested in digging deeper into the content may wish to obtain the textbook Algorithms, Fourth Edition (upon which the course is based) or visit the website algs4.cs.princeton.edu for a wealth of additional material.

This course does not offer a certificate upon completion.

**Difficulty:** Beginner | **Language:** English | **Duration:** 6 weeks of study, 6–10 hours per week. | **Price:** Free

**Link:** https://www.coursera.org/learn/algorithms-part1

**Tags:** courses, technology-computer-science, algorithms

## Books

### 1. Competitive Programmer's Handbook

**Author:** Antti Laaksonen

Antti Laaksonen's free handbook. Its chapter on complete search and binary search treats the monotonic-predicate formulation and its off-by-one traps directly; later chapters implement depth-first and breadth-first search, shortest paths and tree traversal in C++.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://cses.fi/book/book.pdf

**Tags:** competitive-programming, binary-search, graph-search, complete-search, cpp

---

*This content is part of Dantes.io - Your Treasure Map to Knowledge*

*Curated by humans at Dantes.io. Personal study use welcome; republishing this curation requires permission (team@dantes.io).*

View this page online: https://dantes.io/subject/search-algorithms