Comments (60)
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.
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.
Hi, all! I'd like to work on ternary search algorithm, if no one else is working on it.
from rust.
@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.
@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.
Go ahead @Jay9596 :)
from rust.
I'd like to try my hands on heap sort.
from rust.
I'll take a shot at making a Stack
from rust.
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.
@r0hit-gupta Hello, I am a bit new to Rust, but can I make implementations of:
- Trie
- Graph
?
from rust.
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.
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.
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.
Hello, i will work on DFS Graph Algorithm
from rust.
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.
@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.
@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.
@r0hit-gupta I am also looking for a first time contribution! Mind if I take on some of the data structures?
from rust.
@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.
@r0hit-gupta I'll take a crack at the KMP string pattern matching 👍
from rust.
@0xazure - sorry, I didn't read your comment until now. I just added a PR with insertion sort.
from rust.
@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.
@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.
I'm actually working on Merge Sort
from rust.
I think there is already a PR for Merge Sort @eisterman
from rust.
I'd like to work on implementing Queue, if no one has claimed it.
from rust.
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.
I am interested in caesar cipher.
from rust.
Give it a try @BaxterEaves and @pickfire 👍
from rust.
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.
@AnshulMalik I have added the caesar cipher #55
from rust.
@r0hit-gupta I add PR for Longest common subsequence, still not merged ?
from rust.
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.
Hey I'll try to do Dijkstra algorithm
from rust.
would like to work on coin change, what's the status?
from rust.
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.
@r0hit-gupta Im thinking on contributing. Can I implement the following:
dynamic_programming/01_knapsack.rs
dynamic_programming/coin_change.rs
from rust.
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.
@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 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.
If you need any help, count me in too.
I would be glad to help you maintain the repo.
from rust.
Is there any algorithm I can help with? Contact me if I can help with anything.
from rust.
n-queens: https://github.com/insou22/typing-the-technical-interview-rust/
from rust.
Kruskal is already in PR: #129
from rust.
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.
@Azeajr seems like no one is working on that at the moment, but you can check open PRs to be sure
from rust.
Dijstra is actually implemented but not marked as one @r0hit-gupta
from rust.
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.
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.
@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.
@er888kh, I think we can have both versions. Depending on the task at hand, both can be useful.
from rust.
@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.
Agree, let's implement for the from 1 to n
case then
from rust.
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.
@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.
In general, I like the idea, but let's discuss it in more detail on our Discord server https://discord.gg/adJacSyV
from rust.
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.
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.
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.
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)
- Improving documentation formatting HOT 4
- ...and how do you use them? HOT 1
- Linked List implementation is unsound HOT 3
- github actions is in outdated version HOT 2
- Authentication is needed to run workflows for PR HOT 7
- Suggestion: Add a Section for Bit Manipulation Algorithms HOT 3
- Suggestion: Adding Loss functions of Machine Learning in maths folder HOT 19
- Suggestion: Add optimization functions, ml algorithms under `machine_learning` folder HOT 10
- Suggestion: Parallel Implementation HOT 3
- DIRECTORY.md is out of date HOT 9
- Many implementations are not declared as mods anywhere in the module tree HOT 1
- Add Gitpod Setup
- Add algorithm to find k-th digit in a digit string HOT 2
- Add algorithm to find a number of points in a polygon area
- Suggestion: Adding Geometry, Graph and Number Theory as subfolders of Math HOT 6
- Suggestion: Add diff and zero-crossing rate algoritms for math HOT 2
- Fails miri test for rb-tree on Rust HOT 2
- String based algorithms panics on unicode characters HOT 3
- Automating mod files HOT 2
- A small bug in Quick Select algorithm HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust.