We love pull requests from everyone. This repository is created for you to contribute different algorithms in different languages. There are separate folders for different languages.
First fork the repository and then clone it using:
git clone git@github.com:your-username/algorithms.git
or
git clone https://github.com/your-username/algorithms.git
You may contribute with any of the following:-
- Implement an algorithm which is not present in a particular language's folder.
- Optimizing or improving an existing algorithm.
- Adding a different approach for an existing algorithm.
- Finding and fixing bugs.
Points to be noted:
- Please have meaningful commit and PR messages.
- Commit messages have to be in imperative tense. An example is "fix segmentation error" or "implement binary search in c++". All commit messages have to be in lower case.
- Same is the case with Pull Requests. Pull requests have a title and a description. Title has to be short and informative.
- While the description is not mandatory, you can add a short description of the algorithm, the optimization you performed or the error you fixed.
Check contrbuting guidelines of AASF-IIITM
- To get started with your first Pull Request, you may refer this link: https://www.youtube.com/watch?v=rgbCcBNZcdQ
- Add your file in the particular language's folder and make sure you name it properly. The name of the Algorithm has to be in PascalCase(First letter of every word has to be capital, without any spaces).
- Update README.md with the name of the algorithm in the particular language's section.
-
C++
- GeneralizedLinkedList
- QueueUsingStack
- StackUsingQueue
- BinarySearch
- SelectionSort
- BubbleSort
- SieveOfEratosthenes
- MergeSort
- CatalanNumbers/DyckPaths
- kthSmallestElement
- InsertionSort
- JumpSearch
- NewtonsSquareRootAlgo
- ShellSort
- QuickSort2
- ExtraLongFactorial
- KadaneAlgo
- Dijkstra
- KruskalAlgo
- Kosaraju
- TopoSort
- ShortestPathDfs
- DutchNationalFlag
- 0-1Knapsack
- NextGreaterNumber
- PriorityQueueUsingLinkedList
- DoublyLinkedList
- Armstrong Number
- HillClimbing
- DepthFirstSearch
- TowerOfHanoi
- KmpAlgorithm
- Cycle Detection In Undirected Graph
- Cycle Detection In Directed Graph
- Connected Components In Graph Using DSU
- Connected Components In Graph Using DFS
- Reachability Between Two Nodes In Undirected Graph using DFS
- WaterJug
- FenwickTree
- RollingHash
- ManacherAlgorithm
- HeapSort
- RabinKarp
- PrefixFunction
- PrimeFactorizationInLogN
- EulersTotientFunction
- TrieImplementation
- Floyd'sCycleFinding
- LongestSubstringWithoutRepeatation
- SegmentTree
- Z Algorithm
- SubsetBitManipulation
- InfixtoPostfix
- BucketSort
- QuickhullAlgoforConvexHull
- DisjointSetUnion
- BinaryExponentiation
- DisjointSetUnion
- HamiltonianPath
- LongestIncreasingSubsequence
- Combination
- PainterPartition
- GeneratePermutation
- GenerateParenthesis
- Combination
- PrimsALgortihm
- LowestCommonAncestor
- BellmanFord
- UnboundedKnapsack
- MCM
- LPS
- Traveling Salesman Problem
-
Java
- BCD Counter
- BinarySearch
- BubbleSort
- SieveOfEratosthenes
- SelectionSort
- DoublyLinkedList
- Fibonacci Heap
- HeapSort
- TopologicalSort
- InsertionSort
- HeapSort
- TowerOfHanoi
- BreadthFirstSearch
- MergeSort
- ShellSort
- DepthFirstSearch
- HuffmanCoding
- EgyptianFraction
- QuickSort
- Dijkstra
- BrickSort
- TransposeGraph
- JumpSearch
- Bucket Sort
- FractionalKnapsack
- InfixtoPostfix
- NewtonsSquareRootAlgo
- FibonacciSearch
- RadixSort
- FenwickTree
- KmpAlgorithm
- RabinKarp
- BellmanFord
- Kosaraju
- DisjointSetUnion
- KadaneAlgo
- PainterPartition
- FCFS
-
Python3
- BubbleSort
- SelectionSort
- SieveOfEratosthenes
- FractionalKnapsack
- DepthFirstTraversal
- BreadthFirstTraversal
- SubsetBitManipulation
- nCrModuloM
- NQueens
- WaterJug
- PigeonHoleSort
- Dijkstra
- Fuzzy-Logic
- BrickSort
- MergeSort
- InsertionSort
- ShellSort
- LegendreConjecture
- TowerOfHanoi
- HeapSort
- FibbonacciSearch
- RadixSort
- JobSequencing
- TopologicalSorting
- JumpSearch
- BucketSort
- Newton'sSquareRootAlgo
- BellmanFord
- BinaryExponentiation
- LongestIncreasingSubsequence
- FenwickTree
- PainterPartition
- Kosaraju
- Rabin-Karp
- LowestCommonAncestor
- FCFS
- KadaneAlgo
- BinarySearch
-
Javascript
-
Go
-
C