An algorithm is a finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation.

  • Binary Search Trees
  • Binary Trees
  • Linked Lists
  • Searching
  • Strings
  • Arrays
  • Stacks
  • Dynamic Programming
  • Famous Algorithms
  • Recursion
  • Sorting
  • Graphs
  • Heaps
  • Tries
Snippet from Wikipedia: Algorithm

In mathematics and computer science, an algorithm ( (listen)) is a finite sequence of well-defined instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing calculations, data processing, automated reasoning, automated decision-making and other tasks. In contrast, a heuristic is an approach to problem solving that may not be fully specified or may not guarantee correct or optimal results, especially in problem domains where there is no well-defined correct or optimal result.

As an effective method, an algorithm can be expressed within a finite amount of space and time, and in a well-defined formal language for calculating a function. Starting from an initial state and initial input (perhaps empty), the instructions describe a computation that, when executed, proceeds through a finite number of well-defined successive states, eventually producing "output" and terminating at a final ending state. The transition from one state to the next is not necessarily deterministic; some algorithms, known as randomized algorithms, incorporate random input.