2015年9月21日星期一

Algorithm -- 101

Algorithm is one foundation of compute program.

The well known algorithm books are
  • TAOCP: The art of computer programming
    • https://en.wikipedia.org/wiki/The_Art_of_Computer_Programmin
  • The algorithm design manual, 2nd
    • http://www.algorist.com/ 
  • Introduction to algorithms, 3rd
    • https://mitpress.mit.edu/index.php?q=books/introduction-algorithms 
  • Algorithm, 4th
    • http://algs4.cs.princeton.edu/home/ 
And, of course, this concise and classic book:
  • http://www.amazon.com/Programming-Pearls-2nd-Edition-Bentley/dp/0201657880
This small visualization tool helps a bit too
  • http://www.cs.usfca.edu/~galles/visualization/Algorithms.html
Algorithm Design Techniques
  • Data structure based
  • Algorithm based
  • Modeling: the art of abstracting a real-world application into a clean probelm suitable for algorithmic attack




Data Structure

  • Linked
    • String, Array, http://beyondcoder.blogspot.com/2015/12/data-structure-string-array.html
    • Linked List, http://beyondcoder.blogspot.com/2015/12/data-structure-linked-list.html
    • Stack and Queue,
  • Map, HashMap, TreeMap, http://beyondcoder.blogspot.com/2015/12/data-structure-hashmap.html
  • Set
  • Binary Tree, http://beyondcoder.blogspot.com/2015/12/algorithm-binary-tree.html
  • Binary Search Tree, http://beyondcoder.blogspot.com/2015/12/algorithm-binary-search-tree.html
  • Trie, https://www.blogger.com/blogger.g?blogID=2861811477507969695#allposts
  • Priority queue, Heap
  • Graph: undirected, directed, acyclic, http://beyondcoder.blogspot.com/2015/12/data-structure-5-graph.html
  • Specialized data structure: like bloom filter
Algorithm classification
  1. Divide-and-conquer
  2. Dynamic Programming, http://beyondcoder.blogspot.com/2015/12/algorithm-dynamic-programming.html
  3. Backtracking, http://beyondcoder.blogspot.com/2015/12/algorithm-backtracking.html
  4. Greedy Algorithm, http://beyondcoder.blogspot.com/2015/12/algorithm-greedy.html
  5. Randomized Algorithm

没有评论:

发表评论