# Algorithms

[Algorithm Design Manual](https://edisciplinas.usp.br/pluginfile.php/1995283/mod_resource/content/1/Skiena.-.TheAlgorithmDesignManual.pdf) is great.

## Interesting algorithms

* [PageRank](http://en.wikipedia.org/wiki/PageRank) - [How it works?](http://qr.ae/TUpCVB)

## Notes

* Mocking up the problem on paper or white board is crucial.
* The functionality of a hash table can be extrapolated and used to solve many problems at the cost of efficiency.
* Arrays can be used to back most higher level data structures. Sometimes a “data structure” is no more than some clever math for accessing locations in an array.

## Links

* [100 days of algorithms](https://github.com/coells/100days)
* [Algorithms](https://github.com/marcosfede/algorithms) - Solved algorithms and data structures problems in many languages.
* [Algorithms by Jeff Erickson](http://jeffe.cs.illinois.edu/teaching/algorithms/) - [GitHub bug tracking repo](https://github.com/jeffgerickson/algorithms)
* [Top algos/DS to learn](https://www.reddit.com/r/compsci/comments/5uz9lb/top_algorithmsdata_structuresconcepts_every/ddy8azz/)
* [Some neat algorithms](https://www.nayuki.io/category/programming)

## Images

![](http://i0.wp.com/www.jessicayung.com/wp-content/uploads/2016/08/screenshot-5.png?fit=1618%2C1130)
