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++
- Generalized_Linked_list
- Queue_Using_Stack
- Stack_using_Queue
- BinarySearch
- SelectionSort
- BubbleSort
- SieveOfEratosthenes
- MergeSort
- CatalanNumbers/DyckPaths
- Finding kth Smallest Element in Array
- InsertionSort
- JumpSearch
- Newton's square root algorithm
- ShellSort
- QuickSort2
- ExtraLongFactorial
- KadaneAlgo
- Dijkstra
- KruskalAlgo
- Kosaraju
- TopoSort
- ShortestPathDfs
- DutchNationalFlag
- 0-1 Knapsack problem using recursion
- Next Greater Number
- PriorityQueueUsingLinkedList
- DoublyLinkedList
- SemiPrimes
- armstrong no
- HillClimbing
- DepthFirstSearch
- TowerOfHanoi
- KmpAlgorithm
- CycleDetectionInUndirectedGraph
- ConnectedComponentsInGraphUsingDSU
- WaterJug
- FenwickTree
- RollingHash
- ManacherAlgorithm
- HeapSort
- RabinKarp
- PrefixFunction
- PrimeFactorizationInLogN
- EulersTotientFunction
- TrieImplementation
- Floyd'sCycleFinding
- SegmentTree
-
Java
-
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
-
Javascript
-
Go
-
C
- Stack_Using_Linked_List
- Queue_Using_Linked_List
- Circular_Queue
- Reverse_Queue
- Stack using array
- Insertion Sort
- Circular Linked List with Adjacent Node Interchange
- First Come First Served - OS Algo
- Shortest Job First - Non Preemptive - OS Algo
- Shortest Job First - Preemptive - OS Algo
- Priority Scheduling - Non Preemptive - OS Algo
- Priority Scheduling - Preemptive - OS Algo
- Quick Sort
- TowerOfHanoi
- MergeSort