# Data structures and Algorithms

In this part, I would like to briefly present **Data structures and Algorithms** taught as fundamental subject of Computer Science. Practicing in this field does not require a high fluency of this subject, however it is really good to train your mindset and will help you produce a better code.

I learn from different resources

1. [Introduction to Algorithms](https://mitpress.mit.edu/books/introduction-algorithms-third-edition)
2. [Design and analysis of algorithms](http://www.personal.kent.edu/~rmuhamma/Algorithms/algorithm.html)
3. [Analysis of Algorithms](http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/LEC/LECTURES/ALL.HTM)
4. [cp-algorithms](https://cp-algorithms.com/)
5. [G4G algorithms](https://www.geeksforgeeks.org/greedy-algorithms/)
6. [Big-O coding classes](https://www.bigocoding.com)

and then practice with problems from several different coding platform. The places to practice can be named as follows:

1. [cc codechef](https://www.codechef.com/)
2. [cf codeforces](https://codeforces.com/)
3. [he hackerearth](https://www.hackerearth.com/challenges/)
4. [hr hackerrank](https://www.hackerrank.com/)
5. [kattis](https://open.kattis.com/)
6. [lightoj](http://lightoj.com/index.php)
7. [spoj](https://www.spoj.com/)
8. [timus](http://acm.timus.ru/)
9. [uva onlinejudge](https://onlinejudge.org/index.php)

It should be noted that several pages do not fully supported Python therefore you can easily get **TLE** error there (time limit excess).

You can easily code, try and save your codes in [ideone platform](https://ideone.com/).
