# C++ ## Arrays 1. [Counting Inversions](Arrays/counting-inversions.cpp) 2. [Dutch Flag Algorithm](Arrays/dutch-flag-algo.cpp) 3. [Left Rotation](Arrays/left-rotation.cpp) 4. [Max Subarray Sum](Arrays/max-subarray-sum.cpp) 5. [Shift Negatives](Arrays/shift-negatives.cpp) 6. [Boyer–Moore Voting Algorithm](Arrays/boyer_more.cpp) 7. [Reverse Array](Arrays/reverse-array.cpp) 8. [Sorted-Rotated Search Array](Arrays/search-sorted-rotated.cpp) 9. [Fractional Knapsack](Arrays/fractional-knapsack.cpp) 10. [Quick Selection](Arrays/quick-select.cpp) 11. [Remove Duplicates](Arrays/remove-duplicates.cpp) 12. [Leaders In The Array](Arrays/leaders-in-array.cpp) 13. [Elements appear thrice In The Array](Arrays/Elements_appears_thrice.cpp) 14. [Maximum Difference](Arrays/maximum-difference.cpp) 15. [Occurrence of one in sorted array](Arrays/occurence-of-one-in-sorted-array.cpp) 16. [Segregate 0s and 1s](Arrays/segregate-0-and-1.cpp) ## Dynamic-Programming 1. [Longest Common Subsequence](Dynamic-Programming/longest-common-subsequence.cpp) 2. [Longest Common Substring](Dynamic-Programming/longest-common-substring.cpp) 3. [0/1-knapsack](Dynamic-Programming/01-knapsack.cpp) 4. [Matrix chain Multiplication](Dynamic-Programming/matrix-chain-multiplication.cpp) 5. [Edit Distance](Dynamic-Programming/edit-distance.cpp) ## Graphs 1. [Bellman Ford Algorithm](Graphs/bellman-ford.cpp) 2. [kruskal Algorithm](Graphs/kruskal-algorithm.cpp) 3. [Breadth First Search](Graphs/breadth-first-search.cpp) 4. [Topological sort](Graphs/topological-sort.cpp) ## Multiplication 1. [Karatsuba](Multiplication/karatsuba.cpp) ## Linked Lists 1. [All possible insertions](Linked-Lists/all-possible-insertion.cpp) 2. [Singly linked lists](Linked-Lists/singly.cpp) 3. [doubley linked lists](Linked-Lists/doubly.cpp) 4. [Circular linked lists](Linked-Lists/circular.cpp) 5. [Removing Elements of given value](Linked-Lists/remove-specific-elements.cpp) 6. [Reversing a linked lists](Linked-Lists/reverse.cpp) 7. [Merging two sorted linked lists](Linked-Lists/merge.cpp) 8. [Reorder List](Linked-Lists/Reorder-List.cpp) 9. [Detecting cycle in a singly linked list](Linked-Lists/Cycle-Detection.cpp) 10. [Find Merge Point of two singly linked list](Linked-Lists/Find-Merge-Point.cpp) 11. [Segregate Even Odd Nodes of linked list](Linked-Lists/segregate-even-odd-nodes-of-linked-list.cpp) 12. [Remove Duplicate in Sorted linked list](Linked-Lists/remove-duplicates-in-sorted-linked-list.cpp) ## Searching 1. [Linear Search](Searching/linear-search.cpp) 2. [Jump Search](Searching/jump-search.cpp) 3. [Binary Search](Searching/binary-search.cpp) 4. [Finding squareroot using Binary search](Searching/sqrt-monotonic-binary-search.cpp) 5. [KMP String Searching](Searching/kmp.cpp) 6. [Ternary Search](Searching/Ternary-search.cpp) 7. [Interpolation Search](Searching/interpolation-search.cpp) 8. [Exponential Search](Searching/exponential-search.cpp) ## Stacks 1. [Balancing Parenthesis](Stacks/balanced-parenthesis.cpp) 2. [Reversing Stack](Stacks/reverse-stack.cpp) 3. [Stack using Array](Stacks/stack-using-array.cpp) ## Sorting 1. [Bubble Sort](Sorting/bubble-sort.cpp) 2. [Insertion Sort](Sorting/insertion-sort.cpp) 3. [Quicksort](Sorting/quick-sort.cpp) 4. [Selection Sort](Sorting/selection-sort.cpp) 5. [3 way Quick Sort](Sorting/3way-quick-sort.cpp) 6. [Bucket Sort](Sorting/bucket-sort.cpp) 7. [Comb Sort](Sorting/comb-sort.cpp) 8. [Counting Sort](Sorting/counting-sort.cpp) 9. [heap Sort](Sorting/heap-sort.cpp) 10. [Radix Sort](Sorting/radix-sort.cpp) 11. [Shell Sort](Sorting/shell-sort.cpp) 12. [Binary Insertion Sort](Sorting/binary-insertion-sort.cpp) 13. [Merge Sort](Sorting/merge-sort.cpp) 14. [Wave Sort](Sorting/wave-sort.cpp) 15. [Cycle Sort](Sorting/cycle-sort.cpp) ## Strings 1. [Rabin-Karp pattern search algo](Strings/rabin-karp.cpp) 2. [All subsequence of a string (Recursion) ](Strings/sequence.cpp) 3. [String reversal](Strings/string-reverse.cpp) 4. [String tokanisation](Strings/string-tokeniser.cpp) 5. [Anagram check](Strings/anagram.cpp) 6. [Remove occurrences from string](Strings/remove-occurrences.cpp) 7. [Delete alternate characters in a string](Strings/delete-alternate-characters.cpp) 8. [Print first letter of every word](Strings/print-first-letter.cpp) ## Trees 1. [Creating Binary Tree](Trees/build-binary-tree.cpp) 2. [Counting and finding sum of all the nodes in BST](Trees/count-and-sum-of-nodes-in-binary-tree.cpp) 3. [Level Order Traversal](Trees/level-order-traversal.cpp) 4. [Depth first Traversal](Trees/pre-in-post-traversal.cpp) 5. [Binary Search Tree](Trees/binary-search-tree.cpp) 6. [In order morris traversal](Trees/in-order-morris-traversal.cpp) 7. [In order Predecessor and Successor](Trees/in-order-predecessor-and-successor.cpp) 8. [Avl Tree](Trees/avl.cpp) 9. [Min Heap](Trees/min-heap.cpp) 10. [Finding the height of a given tree](Trees/Height-Of-Tree.cpp) 11. [Finding the elements of a tree visible from top view](Trees/Top-View-Of-A-Tree.cpp) 12. [Binary Tree Implementation](Trees/binary-tree-implementation.cpp) # Maths 1. [Kaprekar Number](Maths/Kaprekar-number.cpp) 2. [Prime Number](Maths/prime-check.cpp) 3. [Prime Sieve](Maths/prime-sieve.cpp) 4. [Fibonacci Series](Maths/fibonaccci-series.cpp) 5. [Binomial Coefficient](Maths/binomial-coefficient.cpp) 5. [Armstrong Number](Maths/armstrong.cpp) 6. [Palindrome](Maths/palindrome.cpp) 7. [Reverse digit of a number](Maths/reverse-digits.cpp) 8. [Missing number](Maths/missing-number.cpp) 9. [Factorial of a number](Maths/factorial.cpp) # Recursion 1. [Tower of Hanoi](Recursion/towerofHanoi.cpp) 2. [Factorial](Recursion/factorial.cpp) 3. [Permutation](Recursion/permutation.cpp) 4. [GCD/HCF of two numbers](Recursion/GCD-of-two-numbers.cpp) 5. [Sum of all elements of an array](Recursion/Sum-of-all-elements-in-an-array.cpp) 6. [Decimal number to Binary conversion](Recursion/decimal-to-binary-conversion.cpp) 7. [Sum of digits of a decimal integer](Recursion/sum-of-digits-of-an-integer.cpp)