You need algorithms

  • For fun
  • For intellectual stimulation.
  • To become a proficient programmer.
  • They may unlock the secrets of life and the universe.

The algorithm is a method to solve a problem, Data structure is a method to store information

  • data types : stack, queue, bag, union-find, priority queue
  • sorting : quicksort, mergesort, heapsort
  • searching :BST, red-black BST, hash table
  • graphs : BFS, DFS, Prim, Kruskal, Dijkstra
  • strings : radix sorts, tries, KMP, regexps, data compression
  • advanced : B-tree, suffix array, maxflow