Computing Atlas

How Computing Was Built
Sign In
Text size
100%
Theme
Browse By

All Algorithm Design Strategies

General strategies for building algorithms, as opposed to any single algorithm. Divide and conquer splits a problem into smaller copies of itself, dynamic programming stores the answers to overlapping subproblems, and greedy methods take the best local choice at each step. Backtracking, branch and bound and brute-force search explore a space of candidates, while randomized, approximation and heuristic methods give up some exactness to finish in reasonable time.

All Algorithm Design Strategies
Filter Results11 entries
Sources
Alpha-beta pruning - Wikipedia
Has Member: Alpha-Beta Pruning, Lead
Quote, Has Member: Alpha-Beta Pruning, Lead
Alpha-beta pruning is a tree search algorithm that seeks to decrease the number of nodes that are evaluated by the minimax algorithm
View the Source
Recursion (Wikipedia)
Has Member: Recursion, Lead
Quote, Has Member: Recursion, Lead
Recursion occurs when the definition of a concept or process depends on a simpler or previous version of itself.
View the Source
Wikipedia: Dynamic Programming
Wikimedia FoundationHas Member: Dynamic Programming, Lead
Quote, Has Member: Dynamic Programming, Lead
Dynamic programming (DP) is both a mathematical optimization method and an algorithmic paradigm.
View the Source
Wikipedia: Approximation algorithm
Has Member: Approximation Algorithms, Lead
Quote, Has Member: Approximation Algorithms, Lead
In computer science and operations research, approximation algorithms are efficient algorithms that find approximate solutions to optimization problems (in particular NP-hard problems) with provable guarantees on the distance of the returned solution to the optimal one.
View the Source
Wikipedia: Backtracking
Has Member: Backtracking, Lead
Quote, Has Member: Backtracking, Lead
Backtracking is a class of algorithms for finding solutions to some computational problems, notably constraint satisfaction or enumeration problems, that incrementally builds candidates to the solutions, and abandons a candidate ("backtracks") as soon as it determines that the candidate cannot possibly be completed to a valid solution.
View the Source
Wikipedia: Branch and Bound Algorithm
Wikimedia FoundationHas Member: Branch and Bound, Lead
Quote, Has Member: Branch and Bound, Lead
Branch-and-bound (BB, B&B, or BnB) is a method for solving optimization problems by breaking them down into smaller subproblems and using a bounding function to eliminate subproblems that cannot contain the optimal solution.
View the Source
Wikipedia: Brute-force search
Has Member: Brute-Force Search, Lead
Quote, Has Member: Brute-Force Search, Lead
In computer science, brute-force search or exhaustive search, also known as generate and test, is a very general problem-solving technique and algorithmic paradigm that consists of systematically checking all possible candidates for whether or not each candidate satisfies the problem's statement.
View the Source
Wikipedia: Divide-and-conquer algorithm
WikipediaHas Member: Divide and Conquer, Lead
Quote, Has Member: Divide and Conquer, Lead
In computer science, divide and conquer, originally a political maxim, designates an algorithm design paradigm.
View the Source
Wikipedia: Greedy algorithm
Has Member: Greedy Method, Lead
Quote, Has Member: Greedy Method, Lead
A greedy algorithm is an algorithm which, at each step, makes the choice that is locally optimal, and subsequently does not reconsider past choices.
View the Source
Wikipedia: Heuristic (computer science)
Has Member: Heuristics, Lead
Quote, Has Member: Heuristics, Lead
In mathematical optimization and computer science, heuristic (from Greek εὑρίσκω eurísko "I find, discover") is a technique designed for problem solving more quickly when classic methods are too slow for finding an exact or approximate solution, or when classic methods fail to find any exact solution in a search space.
View the Source
Wikipedia: Randomized algorithm
Has Member: Randomized Algorithms, Lead
Quote, Has Member: Randomized Algorithms, Lead
A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic or procedure.
View the Source
Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.