Algorithms

What are they and how do they work?

http://en.wikipedia.org/wiki/Algorithm

Programming Challenges: The Programming Contest Training Manual. Steven S. Skiena and Miguel A. Revilla, New York: Springer, 2003.

This excellent introduction to algorithms is recommended by the Centre for Education in Mathematics and Computing. Studying algorithms is a highly effective way to improve your coding skills. The book offers a wealth of programming problems. The online judge responds to programs written in C, C++, Pascal and Java. Test your solutions at

http://www.programming-challenges.com

http://acm.cs.buap.mx/downloads/Programming_Challenges.pdf

Mr. Graham Langston — Algorithm Workshop Notes

  1. Linear & Binary Search, January 30, 2014

    http://en.wikipedia.org/wiki/Collatz_conjecture

  2. Sorting, February 6, 2014

    http://en.wikipedia.org/wiki/Sorting_algorithm

  3. Flood Fill, February 13, 2014

    http://en.wikipedia.org/wiki/Flood_fill

  4. CCC Practice, February 20, 2014

  5. Queues & Stacks, February 27, 2014

  6. Dijkstra's Algorithm, March 6, 2014


    http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

    My version is actually a bit different from the version on that page. Instead of finding the cost of all nodes and remembering what the best path to each actually is, it stops after finding the cost of a single destination node and simply returns the cost of the best path to that node (I'm thinking of leaving the implementation of the other features as take-home questions). Also, instead of keeping a distinct set of nodes remaining to check, it uses the original set of nodes and an array indicating which ones have already been visited. These are pretty minor differences, and the core logic remains intact.

  7. Encryption, March 13, 2014

  8. Spans, April 3, 2014

  9. Graphics, April 10, 2014

  10. DFA (Deterministic Finite Automation), April 17, 2014

  11. , April 24, 2014

  12. , May 1, 2014

Resources

The Algorithm Design Manual. Second Edition. 2008 Skiena, Steven, New York: Springer-Verlag.

http://www.algorist.com/

http://sist.sysu.edu.cn/~isslxm/DSA/textbook/Skiena.-.TheAlgorithmDesignManual.pdf

Competitive Programming 3: The New Lower Bound of Programming Contests. 2011, Steven Halim and Felix Halim.

http://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp1.pdf

Algorithm Tutorial

http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static

An Advanced Book

Looking For A Challenge? The Ultimate Problem Set From the University of Warsaw Programming Competitions. Krzysztof Diks, Tomasz Idziaszek, Jacob Lacki and Jakub Radoszewski, Editors, 2012 (2012978-83-920897-2-8)

Codility, We Test Coders
http://codility.com/