Sorting, searching & vector search
Sorting, search in arrays and strings, selection and nearest-neighbour search.
Sorting
Ordering data fast in memory and on disk.
Radix sort
lowNon-comparison sort that distributes keys by 8-bit digits; several times faster than comparison sorts on large arrays of integers, floats or fixed-size keys.
Pattern-defeating quicksort (pdqsort)
lowIntrosort successor: quicksort with adaptive pivots, linear on sorted and equal-heavy input, heapsort fallback; the unstable sort of Go and (until 1.81) Rust.
External merge sort
mediumSort data larger than RAM: write memory-sized sorted runs, then k-way merge them with large sequential buffers; terabytes in one merge pass.
k way merge
Planned.
parallel prefix sum
Planned.
Searching
Finding keys and substrings.
Eytzinger binary search
lowSorted array stored in BFS order so binary search walks an implicit tree with prefetchable addresses; 2-2.5x faster than binary search beyond cache.
SIMD substring search
lowFind bytes or substrings by comparing 16-64 haystack positions per instruction against the needle's first and last byte, then verifying the rare candidates.
Suffix array
lowSorted array of all suffix start positions of a text; finds every occurrence of any substring by binary search, at 4-5 bytes per text byte.
failure bisection
Planned.
Selection
Top-k and order statistics.
Vector search
Approximate nearest neighbours for embeddings.
HNSW
mediumHierarchical Navigable Small World: a layered proximity graph searched greedily from a sparse top layer; the default in-memory approximate nearest-neighbour index.
IVF-PQ
mediumInverted file plus product quantization: cluster vectors into lists, store each as a few bytes of codes, scan only the nearest lists via table lookups.
diskann vamana
Planned.
Nearest-neighbour search with filters
mediumCombine approximate nearest-neighbour search with attribute predicates by pre-filtering, post-filtering or filter-aware graph traversal, chosen by how many items pass.
scalar quantization
Planned.
Hybrid search and rank fusion
lowMerge a keyword (BM25) result list and a vector (ANN) list into one ranking, by ranks (RRF) or by normalized scores (convex combination).
Cross-encoder reranking
mediumRe-score the top-k candidates of a cheap first stage with a model that reads query and candidate together; more accurate than separate embeddings, but one model call per pair.
maximal marginal relevance
Planned.
Text retrieval
Turning text into terms and ranking matches.
Unicode text tokenization for search
lowTurn multilingual text into index terms: segment words (UAX 29 style, CJK bigrams), normalize, case-fold and accent-fold, identically at index and query time.
BM25 ranking
lowThe standard lexical relevance score: IDF-weighted term frequency with saturation (k1) and length normalization (b); default in Lucene, Elasticsearch and SQLite FTS5.
Aho-Corasick multi-pattern matching
lowFind all occurrences of many fixed patterns in one pass over the text, in time independent of the pattern count, using a trie with failure links.
Linear-time regular expression matching
mediumMatch a regular expression in O(pattern x text) worst case by tracking all live parse positions at once, then cache the state sets as a lazily built DFA for speed.
glob matching
Planned.
fm index
Planned.
simd json parsing
Planned.
Full-text retrieval
Posting lists, dynamic pruning and query processing for keyword search.
Top-k pruning with score upper bounds
mediumSkip documents that provably cannot enter the top-k, using per-list and per-block maximum scores against the current k-th best score (WAND, Block-Max WAND, MaxScore).
Sorted-list intersection
lowIntersect sorted id lists by merging, galloping from the short list into the long one, and skipping whole compressed blocks, shortest list first.
trigram index
Planned.
boolean expression indexing
Planned.
finite state transducer
Planned.
time decay scoring
Planned.
stemming
Planned.
query expansion
Planned.
Approximate matching
Matching strings and records that are almost the same.
edit distance
Planned.
levenshtein automata
Planned.
fuzzy finder scoring
Planned.
fuzzy string matching
Planned.
record linkage
Planned.
Diff & near-duplicates
Finding what changed and what is nearly the same.
Myers diff
mediumGreedy O(ND) shortest edit script between two sequences, the default of git and GNU diff; fast when the inputs are similar.
SimHash
lowCharikar's random-hyperplane sketch: a 64-bit fingerprint per document whose Hamming distance tracks cosine similarity, searchable in sub-linear time by exact block matches.
winnowing fingerprints
Planned.
Perceptual hashing
lowCompact fingerprints (64 to 256 bits) of an image that stay close under resizing and recompression, compared by Hamming distance; pHash, dHash and Meta's PDQ.
log template mining
Planned.
stack trace fingerprinting
Planned.
Web crawling
Fetching the web politely and normalizing what comes back.
url frontier
Planned.
Robots exclusion protocol
lowDecide per URL whether a crawler may fetch it from a host's robots.txt (RFC 9309): status-code rules, group choice, longest-match Allow/Disallow, 24 h cache.
URL normalization
lowRewrite a URL to one canonical key, in safe RFC 3986 steps plus lossy, site-dependent ones (tracking parameters, query order, fragments), and keep the original beside the key.
user agent parsing
Planned.
Sequence alignment & genomics
Aligning and indexing biological sequences and variants.
Smith-Waterman local alignment
mediumDynamic programming that finds the highest-scoring pair of similar substrings of two sequences under a substitution score and affine gap penalties, in O(nm) time.
Multiple sequence alignment
mediumAligns N sequences into columns by merging them pairwise up a guide tree as profiles, optionally refined or guided by consistency; exact search is NP-hard.
profile hmm search
Planned.
pair hmm
Planned.
minimizer kmer index
Planned.
de bruijn graph assembly
Planned.
bayesian genotype likelihoods
Planned.
vcf variant normalization
Planned.
genomic binning index
Planned.