Skip to content

Project to practice and have fun with Algorithm Analysis and Design using Java.

License

Notifications You must be signed in to change notification settings

julianomacielferreira/Algorithms-Java

Repository files navigation

Algorithms in Java $${\color{red}[in \space progress]}$$

The intention of this repository is to have fun and improve my skills on Algorithm Analysis and Design, by implementing algorithms and solving proposed problems from the books.

I choose Java™ as the implementation language because I purchase a copy of the book "Algorithms, 4th Edition" by Robert Sedgewick and Kevin Wayne and its book site is full of resources for learning and practicing.

Algorithms 4th Edition

Table of contents

Technologies

I opted to use Java™ Platform, Standard Edition 8 API Specification and IntelliJ IDEA Community.

Data Sets

Data files used to test the algorithms have not been versioned in this repository, but this can be done with Git Large File Storage (LFS).

Click on the section Data in the booksite to get one by one or download them all as one zipped big file (1GB approx.): introcs-data.zip.

After downloading the file, unzip it in a folder called data in the project root folder:

$ unzip introcs-data.zip -d project-root-folder/data

Obs.: In my case project-root-folder is ~/Projects/Java/Algorithms.

Follow this steps in the project root folder to versioning the files (the same as git lfs site):

  • Download and install the Git command line extension.

  • Once downloaded and installed, set up Git LFS and its respective hooks by running:

$ git lfs install
  • Select the file types you'd like Git LFS to manage (or directly edit your .gitattributes). You can configure additional file extensions at anytime.
$ git lfs track "*.txt"
  • Make sure .gitattributes is tracked
$ git add .gitattributes

Finally, commit and push to GitHub as you normally would.

Obs.: See Git Large File Storage (LFS) to know more.

Compile and Test

To compile and run the algorithms, just run in console:

$ ./compile.sh

To compile the tests, just run in console:

$ ./run-tests.sh

Book Standard Library

A great portion of the code uses the books standard library algs4.jar that is versioned in the repository under lib folder.

To get more details about it, access the section Code of the booksite or the complete javadoc documentation.

Disclaimer

This repository DOES NOT CONTAIN any copy / reproduction of the content available in the books "Algorithms, 4th Edition" by Robert Sedgewick and Kevin Wayne, Algorithms Illuminated: Part 1: The Basics, Algorithms Illuminated (Part 2): Graph Algorithms and Data Structures (Volume 2), Introduction to Algorithms 3rd Edition (The MIT Press), Algorithm Complexity 3th Edition (Brazilian portuguese), Discrete Mathematics for Computing and Informatics (Brazilian portuguese), Learning Discrete Math with Exercise (Brazilian portuguese) and Refactoring - Improving the Design of Existing Code for commercial purposes.

It has only my own solutions for the proposed problems in the books chapters with the intention of learning and enhancing my skill set.

References

License

Please see the license agreement.

About

Project to practice and have fun with Algorithm Analysis and Design using Java.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors