Giter Site home page Giter Site logo

Comments (60)

mime8 avatar mime8 commented on May 4, 2024 3

While my PR for ternary search is still in review, I'd like to work on Ternary Search Tree. I don't see this data structure in the project.

from rust.

er888kh avatar er888kh commented on May 4, 2024 2

I think we can implement some items on this list:

Math

  • Random number generation:
    • Basic implementation (#311)
    • Still many more features can be implemented there (like having other distributions, having random floats, randoms in a range, etc.)
  • Integer factorization (#291)
  • FFT (#293)
  • Integration (for general functions) (#300)
  • Polynomial manipulation:
    • integration
    • differentiation
    • inversion
    • exponentiation, calculating logarithm
    • many more operations
  • Matrix operations:
    • Addition, subtraction, multiplication, transposition (#326, Non generic and doesn't implement traits)
    • LU decomposition
  • Gaussian elimination (#328)
  • Big number implementation:
    • At least supporting addition, subtraction, multiplication, conversion to and from strings
    • Division is optional
  • Chinese Remainder Theorem (with big number support)
  • Discrete logarithm (#301)
  • Discrete and primitive root

Graph and Trees

  • Lowest common ancestor (#294)
  • Prufer encoding (#289)
  • Huffman encoding (#321)
  • Strongly Connected Component tasks (#309)
  • Heavy Light Decomposition (#310)
  • Centroid, centroid decomposition (#314)
  • Max flow:
    • Dinic's algorithm (#323)
    • Push relabel algorithm
    • MPM algorithm
  • Bipartite matching (can be implemented using max flow too)
  • All pairs shortest path
  • Eulerian path
  • 2-SAT

Searching

  • Ternary search (#297)

Strings

  • Suffix array, suffix tree

I'm sure I'm missing many algorithms.

from rust.

mime8 avatar mime8 commented on May 4, 2024 2

Hi, all! I'd like to work on ternary search algorithm, if no one else is working on it.

from rust.

siriak avatar siriak commented on May 4, 2024 2

@b42thomas depending on how complex they are. If you're implementing naive approaches, they can be merged together, if some complex algorithms, better to do them separately

from rust.

mhorst00 avatar mhorst00 commented on May 4, 2024 2

@LeonAmtmann and me want to implement a couple of algorithms requested here. Right now we are working on these 3:

  • Gauss-Elimination
  • Newton-Raphson method derivation
  • Basic matrix operations: add, subtract, multiply

All of these should be generic.

from rust.

AnshulMalik avatar AnshulMalik commented on May 4, 2024 1

Go ahead @Jay9596 :)

from rust.

teskje avatar teskje commented on May 4, 2024 1

I'd like to try my hands on heap sort.

from rust.

DanielSauve avatar DanielSauve commented on May 4, 2024 1

I'll take a shot at making a Stack

from rust.

kitlith avatar kitlith commented on May 4, 2024 1

I noticed Linked Lists are listed, I think this does the subject the most justice: https://rust-unofficial.github.io/too-many-lists/

from rust.

marnagy avatar marnagy commented on May 4, 2024 1

@r0hit-gupta Hello, I am a bit new to Rust, but can I make implementations of:

  • Trie
  • Graph
    ?

from rust.

jonakr avatar jonakr commented on May 4, 2024 1

I would like to implement the following algorithms with a fellow student as a project for our Rust lecture at the Corporate University DHBW Stuttgart.

  • Transposition Cipher
  • n-queens Problem
  • Rod cut

from rust.

alexfertel avatar alexfertel commented on May 4, 2024 1

Hello! I see this repo is unmaintained, but I think it provides a lot of value for the community, so I decided to make my own, which you can find in https://github.com/alexfertel/rust-algorithms.

I started by adding the sorting algorithms but feel free to contribute with your own. 🚀

from rust.

siriak avatar siriak commented on May 4, 2024 1

Hi @alexfertel, I'm cleaning up this repo at the moment and will continually review new submissions, so feel free to contribute here too :)

from rust.

MatheusMuriel avatar MatheusMuriel commented on May 4, 2024 1

Hello, i will work on DFS Graph Algorithm

from rust.

er888kh avatar er888kh commented on May 4, 2024 1

Hi, all! I'd like to work on ternary search algorithm, if no one else is working on it.

Awesome! I added your name to the list.

from rust.

kou-sia avatar kou-sia commented on May 4, 2024 1

@siriak
I want to run_length_encoding.
This is because 'burrows_wheeler_transform' is already implemented and it would be beneficial to add 'run_length_encoding' (PR369) to the library, which is often performed following this algorithm.

from rust.

0xazure avatar 0xazure commented on May 4, 2024

@r0hit-gupta I'm still getting my feet wet with Rust, but I wouldn't mind taking a stab at insertion & selection sort along with some tests for them.

from rust.

nlynchjo avatar nlynchjo commented on May 4, 2024

@r0hit-gupta I am also looking for a first time contribution! Mind if I take on some of the data structures?

from rust.

r0hit-gupta avatar r0hit-gupta commented on May 4, 2024

@0xazure @nlynchjo Please feel free to contribute and work on anything you like. Take an idea from other repositories if you do not know how to begin. Send a pull request and if there is something not right, we will let you know. Cheers!

from rust.

darkkeh avatar darkkeh commented on May 4, 2024

@r0hit-gupta I'll take a crack at the KMP string pattern matching 👍

from rust.

bofh69 avatar bofh69 commented on May 4, 2024

@0xazure - sorry, I didn't read your comment until now. I just added a PR with insertion sort.

from rust.

0xazure avatar 0xazure commented on May 4, 2024

@bofh69 thanks for letting me know! I hadn't actually started implementing it yet, so I'll focus on the selection sort. I'm definitely interested in how you did it in Rust, so I'll have a look at your PR!

from rust.

bofh69 avatar bofh69 commented on May 4, 2024

@0xazure Great! I felt a bit stupid not checking the comments here first...
My solution is probably not the best, I'm still learning Rust, but now it is decent.

from rust.

eisterman avatar eisterman commented on May 4, 2024

I'm actually working on Merge Sort

from rust.

AnshulMalik avatar AnshulMalik commented on May 4, 2024

I think there is already a PR for Merge Sort @eisterman

from rust.

Jay9596 avatar Jay9596 commented on May 4, 2024

I'd like to work on implementing Queue, if no one has claimed it.

from rust.

BaxterEaves avatar BaxterEaves commented on May 4, 2024

I'm up for k-means, but i'm not aware of a dynamic programming algorithm for data with more than one dimension. I can implement the more general iterative algorithm if you like.

from rust.

pickfire avatar pickfire commented on May 4, 2024

I am interested in caesar cipher.

from rust.

AnshulMalik avatar AnshulMalik commented on May 4, 2024

Give it a try @BaxterEaves and @pickfire 👍

from rust.

elpiel avatar elpiel commented on May 4, 2024

I've added another Merge Sort implementation, I will try to do some other as well PR #57
PS: I didn't see that it's already implemented 😁

Update:
Binary tree PR #58

from rust.

pickfire avatar pickfire commented on May 4, 2024

@AnshulMalik I have added the caesar cipher #55

from rust.

leviathanbeak avatar leviathanbeak commented on May 4, 2024

@r0hit-gupta I add PR for Longest common subsequence, still not merged ?

from rust.

sstadick avatar sstadick commented on May 4, 2024

I will take a crack at a few of these!
It looks like there's a Radix Sort PR in progress, what's the status there?

from rust.

fabrizzioalco avatar fabrizzioalco commented on May 4, 2024

Hey I'll try to do Dijkstra algorithm

from rust.

douglasvmo avatar douglasvmo commented on May 4, 2024

would like to work on coin change, what's the status?

from rust.

pgimalac avatar pgimalac commented on May 4, 2024

I'm not sure sharing solutions of the Project Euler is a very good idea, I think it goes against the objective of the challenges...

from rust.

joao-conde avatar joao-conde commented on May 4, 2024

@r0hit-gupta Im thinking on contributing. Can I implement the following:

  1. dynamic_programming/01_knapsack.rs
  2. dynamic_programming/coin_change.rs

from rust.

 avatar commented on May 4, 2024

I wonder if there are enough reviewers in this repository.
Some PR is not reviewed for months, and it reduce the committer's motivation.

from rust.

pickfire avatar pickfire commented on May 4, 2024

@ayaankhan98 If no one is currently maintaining it, I can help to temporary maintain the repo to reduce the amount of open pull requests and help to review them at the same time if I have time.

from rust.

ayaankhan98 avatar ayaankhan98 commented on May 4, 2024

@ayaankhan98 If no one is currently maintaining it, I can help to temporary maintain the repo to reduce the amount of open pull requests and help to review them at the same time if I have time.

Yes, sure @pickfire go ahead. Thanks for your support.

from rust.

cfvescovo avatar cfvescovo commented on May 4, 2024

If you need any help, count me in too.
I would be glad to help you maintain the repo.

from rust.

marnagy avatar marnagy commented on May 4, 2024

Is there any algorithm I can help with? Contact me if I can help with anything.

from rust.

shadiakiki1986 avatar shadiakiki1986 commented on May 4, 2024

n-queens: https://github.com/insou22/typing-the-technical-interview-rust/

from rust.

iamdejan avatar iamdejan commented on May 4, 2024

Kruskal is already in PR: #129

from rust.

Azeajr avatar Azeajr commented on May 4, 2024

Hello, I wanted to work on Queue since PR: #25 was closed. Or should I work on a different algorithm?

Forget it just checked the actual repo and I see that queue is implemented. #229

Instead has anyone started working on BFS?

from rust.

siriak avatar siriak commented on May 4, 2024

@Azeajr seems like no one is working on that at the moment, but you can check open PRs to be sure

from rust.

elpiel avatar elpiel commented on May 4, 2024

Dijstra is actually implemented but not marked as one @r0hit-gupta

from rust.

github-actions avatar github-actions commented on May 4, 2024

This issue has been automatically marked as abandoned because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

from rust.

b42thomas avatar b42thomas commented on May 4, 2024

Hey y'all, I'm looking to make my first contribution. I would like to work on the matrix operations. Should that be separated into different PRs for addition, subtraction and multiplication?

from rust.

er888kh avatar er888kh commented on May 4, 2024

@siriak I have a question:
I want to implement a few graph algorithms, and if they are represented using BTreeMap, a log(n) factor would be added to their time complexity (obviously.) So can I only implement the algorithms for graphs with vertices numbered from 1 to n and having &[Vec<usize>] as their adjacency list?

I know we are supposed to create generic algorithms, but adding a log(n) to max flow wouldn't make anyone happy.

from rust.

siriak avatar siriak commented on May 4, 2024

@er888kh, I think we can have both versions. Depending on the task at hand, both can be useful.

from rust.

er888kh avatar er888kh commented on May 4, 2024

@er888kh, I think we can have both versions. Depending on the task at hand, both can be useful.

That's certainly an option, but it would create a lot of duplication (or at least generics boiler plate)

Another solution is to have a seperate implementation that enumerates graphs represented using BTreeMap to a convenient representation. Then anyone can use that instead. As an added bonus, this solution wouldn't change the time complexity, as iterating over a BTree can be done in O(n).

I will implement the option you choose (my code wouldn't be ready for at least a few days though, I'm too busy)

from rust.

siriak avatar siriak commented on May 4, 2024

Agree, let's implement for the from 1 to n case then

from rust.

er888kh avatar er888kh commented on May 4, 2024

Now that I have added (#309), it should be really easy to implement 2-SAT problem's solution.
Here is my CPP implementation if anyone is interested.

from rust.

er888kh avatar er888kh commented on May 4, 2024

@siriak, what is your opinion about moving towards creating a general purpose crate for crates.io? We already have the "basic infrastructure" and people can really benefit from these implementations.

from rust.

siriak avatar siriak commented on May 4, 2024

In general, I like the idea, but let's discuss it in more detail on our Discord server https://discord.gg/adJacSyV

from rust.

er888kh avatar er888kh commented on May 4, 2024

I have an idea for implementing big number support:

First, One can implement a really basic base 10 big number module. It only supports addition and multiplication by 2. It can be formatted as a string and can be created from a string.

After that, a big number module can be implemented that is basically just a BitSet with usual operations (addition, multiplication, division, ...). Converting to and from strings can then be handled using the base 10 implementation.

Right now I am just way too busy, and I will not have time to implement these, plus the second one will have a ton of boring boilerplate. Can someone implement (or even just partially implement) any of the above modules?

Also, there might be simpler approaches to this problem, so other suggestions are welcome.

from rust.

kou-sia avatar kou-sia commented on May 4, 2024

I've implemented it before.
So if you want to add run length, I suggest you revamp the existing source code.
What do you think?

https://github.com/TheAlgorithms/Rust/commits/master/src/string/run_length_encoding.rs

from rust.

github-actions avatar github-actions commented on May 4, 2024

This issue has been automatically marked as abandoned because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

from rust.

github-actions avatar github-actions commented on May 4, 2024

Please ping one of the maintainers once you add more information and updates here. If this is not the case and you need some help, feel free to ask for help in our Gitter channel. Thank you for your contributions!

from rust.

Related Issues (20)

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.