GithubHelp home page GithubHelp logo

nishantc1527 / algorithms-java Goto Github PK

View Code? Open in Web Editor NEW
139.0 10.0 16.0 31.23 MB

A collection of common algorithms and data structures implemented in Java.

License: MIT License

Java 100.00%
explanations java python3 cpp data-structures algorithms trees trie tested bit-manipulation

algorithms-java's People

Contributors

mend-bolt-for-github[bot] avatar nikhilc1527 avatar nishantc1527 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

algorithms-java's Issues

Add Greedy Algorithms Section

Add a greedy algorithms section with a few problems. You can find some good problems here if you are having trouble looking for them. Make sure to add an explanation for each.

Points: 40

Add More Tests

Right now, I don't have many testing methods in the JUnit tests. It would be nice to have more tests.

Points: 5 points per method.

Add Issue

If you can think of an issue, but don't what to fix it yourself, just add it.

Points: 5 - 10

Add To The Privilege Section

As specified in the README, the privilege section, it's not complete. If you feel there is something to add, feel free!

Points: 5 - 10 points, depending on the quality.

Add Comparable Support

For classes like sorting, data structures like Fibonacci heap and min heap, they only support ints. It would be nice if they took a generic value.

Points: 10 for each class.

Fix Fibonacci Heap Bug

It has come to my attention that the Fibonacci Heap has a bug, specifically when you chain the extract min method. Here is a test that doesn't work:

    for(int i = 0; i < 100; i ++) {
        heap.insert(i);
    }

    int count = 0;

    while(!heap.isEmpty()) {
        assertEquals(count ++, heap.extractMin());
    }

It would be nice if you could fix it.

Points: 20

Add Javadoc

Right now very few classes have javadoc. So, people looking at the classes can't tell certain things like "does it allow null elements?" or "can you try to insert a duplicate?" These things are supposed to be specified in the javadoc.

Points: 5 per method/class

Lowercase Package Names

Right now most of the package names are uppercase. That is because when I started, I accidentally left a lot of them uppercase before realizing my mistake.

Points: 2 points per package.

Reformat Code

The code in this repository should be in Google Java Style Guide. However, it isn't my regular style, and others too. So if you see something not formatted, please fix it.

Points: 10

Add Van Embe Boas Trees

This would fit into Min Priority Queues. Remember to add the JUnit test too.

Points; 30 points

Add A* Shortest Path Algorithm

In the graph theory section, in shortest path algorithms and single source shortest path, implement the A* shortest path algorithm.

Points: 20

Improve The Explanations

This one is a really good place to start. So while reading the explanations, you might've noticed, I'm no author. There might be some typos or formatting error, and you can fix it if you want. You can also improve the explanation for more points, if my explanation was bad.

Points: 5 - 10 points for a typo or formatting issue, and 5 - 30 points for an improvement in explanation.

Improve The Save Children Method In Fibonacci Heap

In the Fibonacci Heap, when I delete the min node while also trying to save the children, I lazily add all the children next to it. This is O(lg n), but it is possible to reduce it to O(1) by merging the children list with the one above. For help or merging, see this post.

Points: 15

Add Time And Space Complexity Analysis

Right now I don't have any time or space complexity analysis's. The space complexity is only sometimes needed.

Points: 15 - 20 depending how good it is.

Bug Fixes

If you find a bug that isn't in the issues already, then feel free to commit it.

Points: 10 - 20 (depending on how sever it was)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.