prakhar1989 / Algorithms

:computer: Data Structures and Algorithms in Python
Do What The F*ck You Want To Public License
3.04k stars 828 forks source link

python Algorithms #30

Open bmoussa opened 8 years ago

bmoussa commented 8 years ago

Hi I want to contribute to this project by adding some python algorithme.This is my first contribution so let me know if I did something wrong!

prakhar1989 commented 8 years ago

Hi @bmoussa,

Feel free to send in your contributions to this repo. Do you have something in mind that you want to implement? If you don't have a specific algorithm in mind, you can improve this repo by adding testcases for existing algorithms.

Let me know if you need help with this.

bmoussa commented 8 years ago

Thank you So for a first contribution I think adding an algorithm in the dp folder. This algorithm that I would call "check.py" will check whether the elements of an array are consecutive.

ab1hi2shek commented 8 years ago

Hi!! I have some algorithms in mind. can i contribute to this repo?

prakhar1989 commented 8 years ago

Sure! Let me know what algorithms do you have in mind and we can move forward from there.

ab1hi2shek commented 8 years ago

I can write Knuth–Morris–Pratt algorithm(KMP), Merge sort,Tower of Hanoi and Fenwick tree algorithms. what u say?

prakhar1989 commented 8 years ago

KMP sounds great. I wanted to add more string algorithms to this repo and KMP sounds like a good way to go. After KMP you can pick up Rabin-Karp and then Boyer-Moore!

Also do remember to add tests as it makes the code more robust.

Looking forward to your PR!

vedangmehta commented 8 years ago

Which of these can I add? Segment tree, strongly connected components (Kosaraju), binary indexed tree and longest common subsequence.

prakhar1989 commented 8 years ago

@vedangmehta Kosaraju's already there, so is LCS. You can start with Segment Tree.

vedangmehta commented 8 years ago

I can't find LCS in DP section. I can see LIS though.

prakhar1989 commented 8 years ago

Oh yeah! You're right. Sorry I confused the two. You can go ahead and add that too.

vedangmehta commented 8 years ago

Ok! I'll add both seg tree and LCS.

munendrasn commented 8 years ago

@prakhar1989 , Can i add Edit Distance to DP section??

prakhar1989 commented 8 years ago

@munendrasn: Can you talk a bit more about the algorithm? Probably a wiki link if possible?

vedangmehta commented 8 years ago

@munendrasn The algorithm is generally known as Levenstein Distance, I believe.

munendrasn commented 8 years ago

@prakhar1989 , https://en.wikipedia.org/wiki/Levenshtein_distance

prakhar1989 commented 8 years ago

Cool. Sounds good. Do remember to add tests in the PR as well.

munendrasn commented 8 years ago

Sure. @prakhar1989 , Also should I close this PR #38 ??

manishrw commented 7 years ago

Can i add modular exponentiation ?

manishrw commented 7 years ago

@prakhar1989 I've sent a PR for modular multiplicative inverse algorithm.