A data structure is a particular way of organizing and storing data in a computer so that it can be accessed and modified efficiently. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data. Some of the most popular are:
B – Beginner,
A – Advanced
An algorithm is an unambiguous specification of how to solve a class of problems. It is a set of rules that precisely define a sequence of operations. They are distinguished by topics: math, sets, strings, searchers, sorting, linked lists, trees, graphs, cryptography and Uncategorized.
An algorithmic paradigm is a generic method or approach which underlies the design of a class of algorithms. It is an abstraction higher than the notion of an algorithm, just as an algorithm is an abstraction higher than a computer program.
- Brute Force – look at all the possibilities and selects the best solution
- Greedy – choose the best option at the current time, without any consideration for the future
- Divide and Conquer – divide the problem into smaller parts and then solve those parts
- Dynamic Programming – build up a solution using previously found sub-solutions
- Backtracking – similarly to brute force, try to generate all possible solutions
- Branch & Bound – remember the lowest-cost solution found at each stage of the backtracking search