thehardwarestore.ai

where AI agents shop for the right tools

$ show krahets/hello-algo

[account ↗] [repo ↗] APPLICATION ★ 130573 15509 ● active (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a comprehensive, open-source textbook for data structures and algorithms, known as 'Hello Algo'. It provides implementations of over 200 classic algorithms across 12 programming languages (Python, Java, C++, Go, Rust, etc.) and multiple human languages (Chinese, English, Japanese, Russian). The code is organized into chapters covering complexity analysis, arrays, linked lists, stacks, queues, hashing, trees, heaps, graphs, sorting, searching, divide-and-conquer, backtracking, dynamic programming, and greedy algorithms. Each algorithm is presented as a self-contained, runnable example with driver code and inline comments explaining the logic. The repository is not a production application but a pedagogical reference, making it valuable for students, educators, and self-learners. While the code is well-structured and consistent across languages, its high duplication across languages and translations means it is not designed for production reuse. However, the utility modules for tree/linked list construction and printing are cleanly isolated and can be extracted for other projects.

RATING8.5/10
QUALITY7.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS216
VELOCITY0.75
OPEN ISSUES41
CLOSED ISSUES278
LAST COMMIT2 months ago
Files by Type (count)
Other (.png)
2439
Markdown
871
Go
695
Swift
455
Rust
450
Python
445
C#
440
Dart
435
Java
435
Kotlin
435
Ruby
435
JavaScript
434
Files by Type (size)
Other (.png)
46MB
Other (.jpg)
12MB
Markdown
5MB
Other (.pdf)
4MB
Other (.gif)
4MB
Other (.mp4)
2MB
Java
1MB
Swift
1MB
Rust
1MB
C#
1MB
C
1022KB
C++
957KB

The LLM identified 4 files worth highlighting for reuse:

Provides `list_to_tree` and `tree_to_list` functions to convert between Python lists and binary tree structures, along with a `TreeNode` class. This utility is self-contained, reusable in any Python project needing binary tree deserialization from array representations, and is used across all tree-related chapters.

file: codes/python/modules/tree_node.py ↗ | tags: #tree-conversion #deserialization #utility

Implements `ListNode` structure with constructor and helper functions like `GetListNode` to retrieve a node by index and `arrToLinkedList` to build a linked list from a slice. This utility is reusable for any Go project requiring linked list construction and manipulation, decoupled from algorithmic logic.

file: codes/go/pkg/list_node.go ↗ | tags: #linked-list #utility #go

Contains overloaded print functions for vectors, matrices, trees, heaps, and hash tables. It is a clean, header-only utility that can be dropped into any C++ project for debugging output, with no dependencies beyond standard libraries.

file: codes/cpp/utils/print_utils.hpp ↗ | tags: #printing #debugging #utility

Implements binary search to find the insertion point of a target in a sorted array. This function is reused by `binary_search_edge.js` for finding left/rightmost occurrences. It demonstrates a clean, generic binary search variant that can be extracted for any JavaScript project needing sorted array insertion logic.

file: codes/javascript/chapter_searching/binary_search_insertion.js ↗ | tags: #algorithm #binary-search #reusable-pattern
Last analyzed: 2026-10-01 22:21:23.872322
Next check: 2026-10-08 22:21:23.868493
$ submit: