"With advanced libraries and languages, you can accomplish some tasks without knowing Algorithms and Data Structures, but you can do much more with such knowledge. This is the bound between programmers and novices." (Robert Sedgewick - Algorithms Part 1)
I created this repository to practice more the subject. As I'm studying, I implement problems and algorithms and push them here.
Algorithms are organized by subjects (e.g. Searching, Sorting, etc...). For each problem, I create a common interface and have different classes implementing the problem's interface. I designed the classes to be concise and to provide enough information so you don't have to check any other files. Therefore, expect to see some duplicated code. The main concern here, is mastering the art of computer programming.
I hope you find the information here useful for you.
I decided to put my code here for a reason: Learning is more fun when we work together, right? Contributions are always welcomed. Please, if you find anything wrong (e.g. bugs or wrong information), consider the following steps:
- Open a new Issue describing the problem
- Fork this project :)
- Fix the problem
- Add your name on the Copyright header of each modified file
- Submit a pull request (details here)
-
Tab x Space:
- Please, consider replacing tabs for blank spaces.
-
Updating the copyright header:
- Add your information, respecting the indentation (see the example below)
Contributors:
Jeanderson Candido <http://jeandersonbc.github.io> - Issue #8
FirstName LastName <contactInfo> - Issue #id
- Committing changes:
Issue #id - Issue Title
Brief description of what your work
I know. Easy, right? :)
##References##
-
Books
- Introduction to Algorithms 3rd Edition - Cormen et. al. (aka CLRS)
- Algorithms 4th Edition - Robert Sedgewick and Kevin Wayne (SW)
-
Online Classes
-
Stanford University (by Tim Roughgarden)
-
Princenton University (by R. Sedgewick and K. Wayne)
-