binary search
Sorted list lookup
Binary search is an algorithm for finding an item in a sorted list by repeatedly dividing the search space in half.
You check the middle element; if it's not the target, you eliminate the half where the target can't exist and repeat.
This halving makes binary search dramatically faster than checking every element: A binary search through a million items takes at most twenty comparisons.
Overcome by fragmenting opposition
- halvingDividing into two
- midpointExact center between two
- logarithmicBased on exponents
- recursiveDefined in terms of itself
iterative · comparison · partition · base case · pseudocode · bisection · pivot · elimination
Numbered series of items
- indexAlphabetical guide to contents
- elementBasic substance or factor
- boundsEdges or leaps
- lower boundMinimum possible value
upper bound · range · subarray · sequence · position · key · lookup · retrieval
Most unfavorable possibility
- best caseMost favorable possibility
- optimalMost desirable outcome
- asymptoticApproaching a limit infinitely
- performanceCarrying out a task
divide and conquer
Overcome by fragmenting opposition
- halvingDividing into two
- midpointExact center between two
- logarithmicBased on exponents
recursive · iterative · comparison · partition · base case · pseudocode · bisection · pivot · elimination · convergence
ordered list
Numbered series of items
lower bound · upper bound · range · subarray · sequence · position · key · lookup · retrieval · contiguous
worst case
Most unfavorable possibility
- best caseMost favorable possibility
- optimalMost desirable outcome
- asymptoticApproaching a limit infinitely
- recursionrecursion, base case, self-reference, infinite recursion, recurrence relation
- organizingorganizing, categorizing, grouping, structuring, classifying
- classification systemstaxonomy, species, cladogram, dichotomous key, phylum
- searchesseek, hunt, quest, find, locate
- algorithmsalgorithm, algorithms, DFS, A star, genetic algorithm
- Divide and Conquersorting, merging, recursion, splitting, partitioning