FOLDERS
- ./Algorithms-Explanation
- ./Algorithms-Explanation/en
- ./Algorithms-Explanation/en/BasicMath
- ./Algorithms-Explanation/en/Ciphers
- ./Algorithms-Explanation/en/DataStructures
- ./Algorithms-Explanation/en/DataStructures/Graph
- ./Algorithms-Explanation/en/DataStructures/LinkedLists
- ./Algorithms-Explanation/en/DynamicProgramming
- ./Algorithms-Explanation/en/ImageProcessing
- ./Algorithms-Explanation/en/SearchAlgorithms
- ./Algorithms-Explanation/en/SelectionAlgorithms
- ./Algorithms-Explanation/en/SortingAlgorithms
- ./Algorithms-Explanation/en/SortingAlgorithms/RecursiveVersions
- ./algorithms-keeper
- ./algorithms-keeper/algorithms_keeper
- ./algorithms-keeper/algorithms_keeper/event
- ./algorithms-keeper/algorithms_keeper/parser
- ./algorithms-keeper/algorithms_keeper/parser/rules
- ./algorithms-keeper/tests
- ./algorithms-keeper/tests/data
- ./C
- ./C/client_server
- ./C/conversions
- ./C/data_structures
- ./C/data_structures/array
- ./C/data_structures/binary_trees
- ./C/data_structures/dictionary
- ./C/data_structures/dynamic_array
- ./C/data_structures/graphs
- ./C/data_structures/hash_set
- ./C/data_structures/heap
- ./C/data_structures/linked_list
- ./C/data_structures/list
- ./C/data_structures/stack
- ./C/data_structures/stack/stack_linked_list
- ./C/data_structures/trie
- ./C/developer_tools
- ./C/exercism
- ./C/exercism/acronym
- ./C/exercism/hello_world
- ./C/exercism/isogram
- ./C/exercism/rna_transcription
- ./C/exercism/word_count
- ./C/games
- ./C/geometry
- ./C/graphics
- ./C/greedy_approach
- ./C/hash
- ./C/leetcode
- ./C/leetcode/src
- ./C/machine_learning
- ./C/misc
- ./C/numerical_methods
- ./C/project_euler
- ./C/project_euler/problem_1
- ./C/project_euler/problem_10
- ./C/project_euler/problem_12
- ./C/project_euler/problem_13
- ./C/project_euler/problem_14
- ./C/project_euler/problem_15
- ./C/project_euler/problem_16
- ./C/project_euler/problem_19
- ./C/project_euler/problem_2
- ./C/project_euler/problem_20
- ./C/project_euler/problem_21
- ./C/project_euler/problem_22
- ./C/project_euler/problem_23
- ./C/project_euler/problem_24
- ./C/project_euler/problem_25
- ./C/project_euler/problem_26
- ./C/project_euler/problem_3
- ./C/project_euler/problem_4
- ./C/project_euler/problem_401
- ./C/project_euler/problem_5
- ./C/project_euler/problem_6
- ./C/project_euler/problem_7
- ./C/project_euler/problem_8
- ./C/project_euler/problem_9
- ./C/searching
- ./C/searching/pattern_search
- ./C/sorting
-
- ./Clojure
- ./Clojure/src
- ./Clojure/src/data_structures
- ./Clojure/src/data_structures/lists
- ./Clojure/test
- ./Clojure/test/data_structures
- ./Clojure/test/data_structures/lists
-
- ./C-Plus-Plus
- ./C-Plus-Plus/backtracking
- ./C-Plus-Plus/bit_manipulation
- ./C-Plus-Plus/ciphers
- ./C-Plus-Plus/data_structures
- ./C-Plus-Plus/data_structures/cll
- ./C-Plus-Plus/divide_and_conquer
- ./C-Plus-Plus/doc
- ./C-Plus-Plus/dynamic_programming
- ./C-Plus-Plus/geometry
- ./C-Plus-Plus/graph
- ./C-Plus-Plus/graphics
- ./C-Plus-Plus/greedy_algorithms
- ./C-Plus-Plus/hashing
- ./C-Plus-Plus/linear_algebra
- ./C-Plus-Plus/machine_learning
- ./C-Plus-Plus/math
- ./C-Plus-Plus/numerical_methods
- ./C-Plus-Plus/operations_on_datastructures
- ./C-Plus-Plus/others
- ./C-Plus-Plus/probability
- ./C-Plus-Plus/range_queries
- ./C-Plus-Plus/search
- ./C-Plus-Plus/sorting
- ./C-Plus-Plus/strings
-
- ./C-Sharp
- ./C-Sharp/Algorithms
- ./C-Sharp/Algorithms/DataCompression
- ./C-Sharp/Algorithms/Encoders
- ./C-Sharp/Algorithms/Knapsack
- ./C-Sharp/Algorithms/LinearAlgebra
- ./C-Sharp/Algorithms/LinearAlgebra/Eigenvalue
- ./C-Sharp/Algorithms/Numeric
- ./C-Sharp/Algorithms/Numeric/Decomposition
- ./C-Sharp/Algorithms/Numeric/Factorization
- ./C-Sharp/Algorithms/Numeric/GreatestCommonDivisor
- ./C-Sharp/Algorithms/Numeric/Pseudoinverse
- ./C-Sharp/Algorithms/Numeric/Series
- ./C-Sharp/Algorithms/Other
- ./C-Sharp/Algorithms/Problems
- ./C-Sharp/Algorithms/Problems/NQueens
- ./C-Sharp/Algorithms/Problems/StableMarriage
- ./C-Sharp/Algorithms/Search
- ./C-Sharp/Algorithms/Search/AStar
- ./C-Sharp/Algorithms/Sequences
- ./C-Sharp/Algorithms/Sorters
- ./C-Sharp/Algorithms/Sorters/Comparison
- ./C-Sharp/Algorithms/Sorters/External
- ./C-Sharp/Algorithms/Sorters/Integer
- ./C-Sharp/Algorithms/Sorters/String
- ./C-Sharp/Algorithms/Strings
- ./C-Sharp/Algorithms.Tests
- ./C-Sharp/Algorithms.Tests/Compressors
- ./C-Sharp/Algorithms.Tests/Encoders
- ./C-Sharp/Algorithms.Tests/Helpers
- ./C-Sharp/Algorithms.Tests/Knapsack
- ./C-Sharp/Algorithms.Tests/LinearAlgebra
- ./C-Sharp/Algorithms.Tests/LinearAlgebra/Eigenvalue
- ./C-Sharp/Algorithms.Tests/Numeric
- ./C-Sharp/Algorithms.Tests/Numeric/Decomposition
- ./C-Sharp/Algorithms.Tests/Numeric/Factorization
- ./C-Sharp/Algorithms.Tests/Numeric/GreatestCommonDivisor
- ./C-Sharp/Algorithms.Tests/Numeric/PseudoInverse
- ./C-Sharp/Algorithms.Tests/Other
- ./C-Sharp/Algorithms.Tests/Problems
- ./C-Sharp/Algorithms.Tests/Problems/NQueens
- ./C-Sharp/Algorithms.Tests/Problems/StableMarriage
- ./C-Sharp/Algorithms.Tests/Search
- ./C-Sharp/Algorithms.Tests/Sequences
- ./C-Sharp/Algorithms.Tests/Sorters
- ./C-Sharp/Algorithms.Tests/Sorters/Comparison
- ./C-Sharp/Algorithms.Tests/Sorters/External
- ./C-Sharp/Algorithms.Tests/Sorters/Integer
- ./C-Sharp/Algorithms.Tests/Sorters/String
- ./C-Sharp/Algorithms.Tests/Strings
- ./C-Sharp/DataStructures
- ./C-Sharp/DataStructures/AATree
- ./C-Sharp/DataStructures/BinarySearchTree
- ./C-Sharp/DataStructures/Heap
- ./C-Sharp/DataStructures/Heap/FibonacciHeap
- ./C-Sharp/DataStructures/LinkedList
- ./C-Sharp/DataStructures/LinkedList/DoublyLinkedList
- ./C-Sharp/DataStructures/LinkedList/SinglyLinkedList
- ./C-Sharp/DataStructures/Queue
- ./C-Sharp/DataStructures/SegmentTrees
- ./C-Sharp/DataStructures/Stack
- ./C-Sharp/DataStructures.Tests
- ./C-Sharp/DataStructures.Tests/Heap
- ./C-Sharp/DataStructures.Tests/Heap/FibonacciHeaps
- ./C-Sharp/DataStructures.Tests/LinkedList
- ./C-Sharp/DataStructures.Tests/Queue
- ./C-Sharp/DataStructures.Tests/SegmentTrees
- ./C-Sharp/DataStructures.Tests/Stack
- ./C-Sharp/Utilities
- ./C-Sharp/Utilities/Exceptions
- ./C-Sharp/Utilities/Extensions
- ./C-Sharp/Utilities.Tests
- ./C-Sharp/Utilities.Tests/Extensions
-
- ./Dart
- ./Dart/array
- ./Dart/backtracking
- ./Dart/conversions
- ./Dart/data_structures
- ./Dart/data_structures/binary_tree
- ./Dart/data_structures/HashMap
- ./Dart/data_structures/Heap
- ./Dart/data_structures/Heap/Binary_Heap
- ./Dart/data_structures/linked_list
- ./Dart/data_structures/quad_tree
- ./Dart/data_structures/Queue
- ./Dart/data_structures/Stack
- ./Dart/dynamic_programming
- ./Dart/graphs
- ./Dart/maths
- ./Dart/other
- ./Dart/project_euler
- ./Dart/project_euler/problem_1
- ./Dart/project_euler/problem_10
- ./Dart/project_euler/problem_12
- ./Dart/project_euler/problem_13
- ./Dart/project_euler/problem_17
- ./Dart/project_euler/problem_2
- ./Dart/project_euler/problem_3
- ./Dart/project_euler/problem_4
- ./Dart/project_euler/problem_5
- ./Dart/project_euler/problem_6
- ./Dart/project_euler/problem_7
- ./Dart/project_euler/problem_8
- ./Dart/project_euler/problem_9
- ./Dart/search
- ./Dart/sort
- ./Dart/strings
- ./Dart/tests
-
- ./Elixir
- ./Elixir/lib
- ./Elixir/lib/codewars
- ./Elixir/lib/data_structures
- ./Elixir/lib/sorting
- ./Elixir/test
- ./Elixir/test/codewars
- ./Elixir/test/data_structures
- ./Elixir/test/sorting
- ./Elm
- ./Elm/src
- ./Elm/src/Sorting
-
- ./F-Sharp
- ./F-Sharp/Algorithms
- ./F-Sharp/Algorithms/Math
- ./F-Sharp/Algorithms/Search
- ./F-Sharp/Algorithms/Sort
- ./F-Sharp/Algorithms/Strings
- ./F-Sharp/Algorithms.Tests
- ./F-Sharp/Algorithms.Tests/Math
- ./F-Sharp/Algorithms.Tests/Strings
-
- ./Go
- ./Go/ciphers
- ./Go/ciphers/caesar
- ./Go/ciphers/diffiehelkeyexchange
- ./Go/ciphers/polybius
- ./Go/ciphers/rot13
- ./Go/ciphers/rsa
- ./Go/ciphers/rsaBig
- ./Go/ciphers/xor
- ./Go/conversions
- ./Go/conversions/roman-to-integer
- ./Go/datastructures
- ./Go/datastructures/binary-tree
- ./Go/datastructures/dynamic-array
- ./Go/datastructures/hashmap
- ./Go/datastructures/linkedlist
- ./Go/datastructures/linkedlist/doublylinkedlist
- ./Go/datastructures/linkedlist/singlylinkedlist
- ./Go/datastructures/trie
- ./Go/designpatterns
- ./Go/designpatterns/abstractfactory
- ./Go/designpatterns/builder
- ./Go/designpatterns/factorymethod
- ./Go/designpatterns/prototype
- ./Go/dynamicprogramming
- ./Go/genetic-algorithm
- ./Go/graphs
- ./Go/graphs/depthfirstsearch
- ./Go/graphs/floydwarshall
- ./Go/graphs/search
- ./Go/math
- ./Go/math/gcd
- ./Go/math/lcm
- ./Go/math/modulararithmetic
- ./Go/math/permutation
- ./Go/math/power
- ./Go/math/prime
- ./Go/math/pythagoras
- ./Go/math/sieve
- ./Go/other
- ./Go/other/maxsubarraysum
- ./Go/other/monte_carlo_pi
- ./Go/other/nestedbrackets
- ./Go/other/passwordgenerator
- ./Go/other/stringcombinations
- ./Go/searches
- ./Go/sorts
- ./Go/strings
- ./Go/strings/levenshteindistance
- ./Go/strings/multiple-string-matching
- ./Go/strings/multiple-string-matching/advanced-aho-corasick
- ./Go/strings/multiple-string-matching/aho-corasick
- ./Go/strings/multiple-string-matching/sbom
- ./Go/strings/naivesearch
- ./Go/strings/single-string-matching
- ./Go/strings/single-string-matching/bom
- ./Go/strings/single-string-matching/horspool
- ./Go/strings/single-string-matching/kmp
-
- ./Haskell
- ./Haskell/specs
- ./Haskell/specs/SortSpecs
- ./Haskell/src
- ./Haskell/src/BinaryTree
- ./Haskell/src/DataStructures
- ./Haskell/src/Graph
- ./Haskell/src/Maths
- ./Haskell/src/Misc
- ./Haskell/src/ProjectEuler
- ./Haskell/src/ProjectEuler/Problem1
- ./Haskell/src/ProjectEuler/Problem2
- ./Haskell/src/ProjectEuler/Problem3
- ./Haskell/src/ProjectEuler/Problem4
- ./Haskell/src/ProjectEuler/Problem5
- ./Haskell/src/ProjectEuler/Problem6
- ./Haskell/src/ProjectEuler/Problem7
- ./Haskell/src/Robotics
- ./Haskell/src/Robotics/ComplementaryFilter
- ./Haskell/src/Sorts
- ./Haskell/src/SpecializedStructure
- ./Haskell/src/Statistics
-
- ./Java
- ./Java/ciphers
- ./Java/Conversions
- ./Java/DataStructures
- ./Java/DataStructures/Bags
- ./Java/DataStructures/Buffers
- ./Java/DataStructures/DynamicArray
- ./Java/DataStructures/Graphs
- ./Java/DataStructures/HashMap
- ./Java/DataStructures/HashMap/Hashing
- ./Java/DataStructures/Heaps
- ./Java/DataStructures/Lists
- ./Java/DataStructures/Queues
- ./Java/DataStructures/Stacks
- ./Java/DataStructures/Trees
- ./Java/divideconquer
- ./Java/DynamicProgramming
- ./Java/Maths
- ./Java/MinimizingLateness
- ./Java/Misc
- ./Java/Others
- ./Java/Others/RestrictedTowerOfHanoi
- ./Java/Others/RestrictedTowerOfHanoi/Main
- ./Java/Others/RestrictedTowerOfHanoi/Resources
- ./Java/Others/RestrictedTowerOfHanoi/Screenshots
- ./Java/ProjectEuler
- ./Java/Searches
- ./Java/Sorts
- ./Java/strings
-
- ./Javascript
- ./Javascript/Backtracking
- ./Javascript/Backtracking/tests
- ./Javascript/Bit-Manipulation
- ./Javascript/Bit-Manipulation/test
- ./Javascript/Cache
- ./Javascript/Cellular-Automata
- ./Javascript/Ciphers
- ./Javascript/Conversions
- ./Javascript/Data-Structures
- ./Javascript/Data-Structures/Array
- ./Javascript/Data-Structures/Graph
- ./Javascript/Data-Structures/Heap
- ./Javascript/Data-Structures/Linked-List
- ./Javascript/Data-Structures/Queue
- ./Javascript/Data-Structures/Stack
- ./Javascript/Data-Structures/Tree
- ./Javascript/Data-Structures/Vectors
- ./Javascript/Dynamic-Programming
- ./Javascript/Geometry
- ./Javascript/Graphs
- ./Javascript/Hashes
- ./Javascript/Linear-Algebra
- ./Javascript/Linear-Algebra/src
- ./Javascript/Linear-Algebra/test
- ./Javascript/Maths
- ./Javascript/Maths/test
- ./Javascript/Navigation
- ./Javascript/Project-Euler
- ./Javascript/Project-Euler/test
- ./Javascript/Recursive
- ./Javascript/Search
- ./Javascript/Search/test
- ./Javascript/Sorts
- ./Javascript/String
- ./Javascript/String/test
- ./Javascript/Timing-Functions
- ./Javascript/Trees
- ./Javascript/Web-Programming
-
- ./Julia
- ./Julia/docs
- ./Julia/docs/src
- ./Julia/src
- ./Julia/src/basic
- ./Julia/src/conversions
- ./Julia/src/data_structures
- ./Julia/src/data_structures/binary_tree
- ./Julia/src/data_structures/disjoint_set
- ./Julia/src/knapsack
- ./Julia/src/math
- ./Julia/src/matrix
- ./Julia/src/project-rosalind
- ./Julia/src/scheduling
- ./Julia/src/searches
- ./Julia/src/sorts
- ./Julia/src/statistics
- ./Julia/src/strings
- ./Julia/test
-
- ./Jupyter
- ./Jupyter/assets
- ./Jupyter/assets/images
- ./Jupyter/Automaton
- ./Jupyter/machine_learning
- ./Jupyter/machine_learning/ARIMA
- ./Jupyter/machine_learning/ARIMA/data
- ./Jupyter/machine_learning/AssociativeMining
- ./Jupyter/machine_learning/Basicsoftensorflow
- ./Jupyter/machine_learning/Cosine-Similarity
- ./Jupyter/machine_learning/dbscan
- ./Jupyter/machine_learning/Decisiontree
- ./Jupyter/machine_learning/DecisionTreeregressionwithk-foldcrossvalidation
- ./Jupyter/machine_learning/Fundamentalsofpython
- ./Jupyter/machine_learning/Linear_Regression
- ./Jupyter/machine_learning/Matplotlib
- ./Jupyter/machine_learning/Movie_recommendation_system
- ./Jupyter/machine_learning/Naive_Bayes
- ./Jupyter/machine_learning/NaiveBayesClassification
- ./Jupyter/machine_learning/Naturallanguageprocessing
- ./Jupyter/machine_learning/Numpy
- ./Jupyter/machine_learning/Pandas
- ./Jupyter/machine_learning/Prophet
- ./Jupyter/machine_learning/Prophet/data
- ./Jupyter/machine_learning/random_forest_classification
- ./Jupyter/machine_learning/random_forest_classification/pycache
- ./Jupyter/machine_learning/random_forest_regression
- ./Jupyter/machine_learning/random_forest_regression/pycache
- ./Jupyter/machine_learning/Reuters_one_vs_rest_classifier
- ./Jupyter/machine_learning/Scikit-learn
- ./Jupyter/machine_learning/Support_Vector_Machine
- ./Jupyter/neural_network
- ./Jupyter/neural_network/GANs-PyTorch-Vanilla-LS-DC
- ./Jupyter/neural_network/RNN
- ./Jupyter/numerical_methods
- ./Jupyter/other
-
- ./Kotlin
- ./Kotlin/gradle
- ./Kotlin/gradle/wrapper
- ./Kotlin/src
- ./Kotlin/src/main
- ./Kotlin/src/main/kotlin
- ./Kotlin/src/test
- ./Kotlin/src/test/kotlin
-
- ./MATLAB-Octave
- ./MATLAB-Octave/algorithms
- ./MATLAB-Octave/algorithms/arithmetic_analysis
- ./MATLAB-Octave/algorithms/crypto
- ./MATLAB-Octave/algorithms/crypto/sdbm-hash
- ./MATLAB-Octave/algorithms/Divisibility_of_integers
- ./MATLAB-Octave/algorithms/Genetic-Algorithm
- ./MATLAB-Octave/algorithms/Genetic-Algorithm/Minimizationofpolynomialfunction
- ./MATLAB-Octave/algorithms/ImageProcessing
- ./MATLAB-Octave/algorithms/ImageProcessing/LSBbasedImageSteganography
- ./MATLAB-Octave/algorithms/ImageProcessing/NearestNeighbhorInterpolation
- ./MATLAB-Octave/algorithms/machine_learning
- ./MATLAB-Octave/algorithms/machine_learning/ActivationFunctions
- ./MATLAB-Octave/algorithms/machine_learning/Gradient-Descent
- ./MATLAB-Octave/algorithms/machine_learning/kmeans
- ./MATLAB-Octave/algorithms/machine_learning/Linear-Regression
- ./MATLAB-Octave/algorithms/machine_learning/Logistic-Regression
- ./MATLAB-Octave/algorithms/machine_learning/Nearest-Neighbor
- ./MATLAB-Octave/algorithms/maths
- ./MATLAB-Octave/algorithms/other
- ./MATLAB-Octave/algorithms/Particle_Swarm_Optimization
- ./MATLAB-Octave/algorithms/Particle_Swarm_Optimization/PolynomialMinimization
- ./MATLAB-Octave/algorithms/Searching
- ./MATLAB-Octave/algorithms/Sieve_of_Eratosthenes
- ./MATLAB-Octave/algorithms/sorting
- ./MATLAB-Octave/algorithms/Strings
- ./MATLAB-Octave/image-processing
- ./MATLAB-Octave/image-processing/Blob-detection-using-Matlab
- ./MATLAB-Octave/image-processing/Blob-detection-using-Matlab/assets
- ./MATLAB-Octave/matlab_for_beginners
- ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)
- ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)
- ./MATLAB-Octave/matlab_for_beginners/part_3(basic_branching)
- ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)
- ./MATLAB-Octave/project-euler
- ./MATLAB-Octave/project-euler/Problem1
- ./MATLAB-Octave/project-euler/Problem2
- ./MATLAB-Octave/project-euler/Problem3
- ./MATLAB-Octave/project-euler/Problem4
-
- ./OCaml
- ./OCaml/searches
- ./OCaml/Sorts
- ./PHP
- ./PHP/ciphers
- ./PHP/Conversions
- ./PHP/Maths
- ./PHP/searches
- ./PHP/sorting
- ./PHP/String
- ./PHP/tests
- ./PHP/tests/sorting
-
- ./Python
- ./Python/arithmetic_analysis
- ./Python/arithmetic_analysis/image_data
- ./Python/backtracking
- ./Python/bit_manipulation
- ./Python/blockchain
- ./Python/boolean_algebra
- ./Python/cellular_automata
- ./Python/ciphers
- ./Python/compression
- ./Python/compression/image_data
- ./Python/computer_vision
- ./Python/conversions
- ./Python/data_structures
- ./Python/data_structures/binary_tree
- ./Python/data_structures/disjoint_set
- ./Python/data_structures/hashing
- ./Python/data_structures/hashing/number_theory
- ./Python/data_structures/heap
- ./Python/data_structures/linked_list
- ./Python/data_structures/queue
- ./Python/data_structures/stacks
- ./Python/data_structures/trie
- ./Python/digital_image_processing
- ./Python/digital_image_processing/dithering
- ./Python/digital_image_processing/edge_detection
- ./Python/digital_image_processing/filters
- ./Python/digital_image_processing/histogram_equalization
- ./Python/digital_image_processing/histogram_equalization/image_data
- ./Python/digital_image_processing/histogram_equalization/output_data
- ./Python/digital_image_processing/image_data
- ./Python/digital_image_processing/resize
- ./Python/digital_image_processing/rotation
- ./Python/divide_and_conquer
- ./Python/dynamic_programming
- ./Python/electronics
- ./Python/file_transfer
- ./Python/file_transfer/tests
- ./Python/fractals
- ./Python/fuzzy_logic
- ./Python/genetic_algorithm
- ./Python/geodesy
- ./Python/graphics
- ./Python/graphs
- ./Python/graphs/tests
- ./Python/hashes
- ./Python/knapsack
- ./Python/knapsack/tests
- ./Python/linear_algebra
- ./Python/linear_algebra/src
- ./Python/machine_learning
- ./Python/machine_learning/forecasting
- ./Python/machine_learning/lstm
- ./Python/maths
- ./Python/maths/images
- ./Python/maths/series
- ./Python/matrix
- ./Python/matrix/tests
- ./Python/networking_flow
- ./Python/neural_network
- ./Python/other
- ./Python/physics
- ./Python/project_euler
- ./Python/project_euler/problem_001
- ./Python/project_euler/problem_002
- ./Python/project_euler/problem_003
- ./Python/project_euler/problem_004
- ./Python/project_euler/problem_005
- ./Python/project_euler/problem_006
- ./Python/project_euler/problem_007
- ./Python/project_euler/problem_008
- ./Python/project_euler/problem_009
- ./Python/project_euler/problem_010
- ./Python/project_euler/problem_011
- ./Python/project_euler/problem_012
- ./Python/project_euler/problem_013
- ./Python/project_euler/problem_014
- ./Python/project_euler/problem_015
- ./Python/project_euler/problem_016
- ./Python/project_euler/problem_017
- ./Python/project_euler/problem_018
- ./Python/project_euler/problem_019
- ./Python/project_euler/problem_020
- ./Python/project_euler/problem_021
- ./Python/project_euler/problem_022
- ./Python/project_euler/problem_023
- ./Python/project_euler/problem_024
- ./Python/project_euler/problem_025
- ./Python/project_euler/problem_026
- ./Python/project_euler/problem_027
- ./Python/project_euler/problem_028
- ./Python/project_euler/problem_029
- ./Python/project_euler/problem_030
- ./Python/project_euler/problem_031
- ./Python/project_euler/problem_032
- ./Python/project_euler/problem_033
- ./Python/project_euler/problem_034
- ./Python/project_euler/problem_035
- ./Python/project_euler/problem_036
- ./Python/project_euler/problem_037
- ./Python/project_euler/problem_038
- ./Python/project_euler/problem_039
- ./Python/project_euler/problem_040
- ./Python/project_euler/problem_041
- ./Python/project_euler/problem_042
- ./Python/project_euler/problem_043
- ./Python/project_euler/problem_044
- ./Python/project_euler/problem_045
- ./Python/project_euler/problem_046
- ./Python/project_euler/problem_047
- ./Python/project_euler/problem_048
- ./Python/project_euler/problem_049
- ./Python/project_euler/problem_050
- ./Python/project_euler/problem_051
- ./Python/project_euler/problem_052
- ./Python/project_euler/problem_053
- ./Python/project_euler/problem_054
- ./Python/project_euler/problem_055
- ./Python/project_euler/problem_056
- ./Python/project_euler/problem_057
- ./Python/project_euler/problem_058
- ./Python/project_euler/problem_059
- ./Python/project_euler/problem_062
- ./Python/project_euler/problem_063
- ./Python/project_euler/problem_064
- ./Python/project_euler/problem_065
- ./Python/project_euler/problem_067
- ./Python/project_euler/problem_069
- ./Python/project_euler/problem_070
- ./Python/project_euler/problem_071
- ./Python/project_euler/problem_072
- ./Python/project_euler/problem_074
- ./Python/project_euler/problem_075
- ./Python/project_euler/problem_076
- ./Python/project_euler/problem_077
- ./Python/project_euler/problem_080
- ./Python/project_euler/problem_081
- ./Python/project_euler/problem_085
- ./Python/project_euler/problem_086
- ./Python/project_euler/problem_087
- ./Python/project_euler/problem_089
- ./Python/project_euler/problem_091
- ./Python/project_euler/problem_097
- ./Python/project_euler/problem_099
- ./Python/project_euler/problem_101
- ./Python/project_euler/problem_102
- ./Python/project_euler/problem_107
- ./Python/project_euler/problem_109
- ./Python/project_euler/problem_112
- ./Python/project_euler/problem_113
- ./Python/project_euler/problem_119
- ./Python/project_euler/problem_120
- ./Python/project_euler/problem_121
- ./Python/project_euler/problem_123
- ./Python/project_euler/problem_125
- ./Python/project_euler/problem_129
- ./Python/project_euler/problem_135
- ./Python/project_euler/problem_144
- ./Python/project_euler/problem_173
- ./Python/project_euler/problem_174
- ./Python/project_euler/problem_180
- ./Python/project_euler/problem_188
- ./Python/project_euler/problem_191
- ./Python/project_euler/problem_203
- ./Python/project_euler/problem_206
- ./Python/project_euler/problem_207
- ./Python/project_euler/problem_234
- ./Python/project_euler/problem_301
- ./Python/project_euler/problem_551
- ./Python/quantum
- ./Python/scheduling
- ./Python/scripts
- ./Python/searches
- ./Python/sorts
- ./Python/strings
- ./Python/web_programming
-
- ./R
- ./R/Association-Algorithms
- ./R/Classification-Algorithms
- ./R/Clustering-Algorithms
- ./R/Data-Manipulation
- ./R/Data-Mining
- ./R/Data-Preprocessing
- ./R/Machine-Learning
- ./R/Mathematics
- ./R/Regression-Algorithms
- ./R/Sorting-Algorithms
-
- ./Ruby
- ./Ruby/backtracking
- ./Ruby/bit_manipulation
- ./Ruby/ciphers
- ./Ruby/conversions
- ./Ruby/data_structures
- ./Ruby/data_structures/arrays
- ./Ruby/data_structures/arrays/strings
- ./Ruby/data_structures/binary_trees
- ./Ruby/data_structures/hash_table
- ./Ruby/data_structures/linked_lists
- ./Ruby/data_structures/queues
- ./Ruby/data_structures/stacks
- ./Ruby/data_structures/tries
- ./Ruby/discrete_mathematics
- ./Ruby/dynamic_programming
- ./Ruby/maths
- ./Ruby/other
- ./Ruby/project_euler
- ./Ruby/project_euler/problem_1
- ./Ruby/project_euler/problem_2
- ./Ruby/project_euler/problem_20
- ./Ruby/project_euler/problem_21
- ./Ruby/project_euler/problem_22
- ./Ruby/project_euler/problem_3
- ./Ruby/project_euler/problem_4
- ./Ruby/project_euler/problem_5
- ./Ruby/searches
- ./Ruby/sorting
-
- ./Rust
- ./Rust/git_hooks
- ./Rust/src
- ./Rust/src/ciphers
- ./Rust/src/data_structures
- ./Rust/src/dynamic_programming
- ./Rust/src/general
- ./Rust/src/searching
- ./Rust/src/sorting
- ./Rust/src/string
-
- ./Scala
- ./Scala/project
- ./Scala/src
- ./Scala/src/main
- ./Scala/src/main/scala
- ./Scala/src/test
- ./Scala/src/test/scala
-
- ./scripts
-
- ./Swift
- ./Swift/algorithms
- ./Swift/algorithms/parsing
- ./Swift/algorithms/parsing/shunting_yard
- ./Swift/data_structures
- ./Swift/data_structures/heap
- ./Swift/data_structures/LinkedList
- ./Swift/data_structures/queue
- ./Swift/data_structures/Stack
- ./Swift/data_structures/union_find
- ./Swift/graph
- ./Swift/graph/spanning_tree
- ./Swift/recursion
- ./Swift/sorts
- ./Swift/trees
-
- ./TheAlgorithms.github.io
- ./TheAlgorithms.github.io/images
- ./TheAlgorithms.github.io/images/svg
- ./TheAlgorithms.github.io/static
- ./TheAlgorithms.github.io/static/css
- ./TheAlgorithms.github.io/static/img
-
- ./website
- ./website-old
- ./website-old/css
- ./website-old/images
- ./website-old/images/svg
Arithmetic Progression
A sequence of numbers is said to be in an Arithmetic progression
if the difference between any two consecutive terms is always the same. In simple terms, it means that the next number in the series is calculated by adding a fixed number to the previous number in the series.
For example, 2, 4, 6, 8, 10 is an AP because the difference between any two consecutive terms in the series (common difference) is same (4 - 2 = 6 - 4 = 8 - 6 = 10 - 8 = 2).
Facts about Arithmetic Progression:
- Initial term: In an arithmetic progression, the first number in the series is called the initial term.
- Common difference: The value by which consecutive terms increase or decrease is called the
common difference
. - The behavior of the arithmetic progression depends on the common difference
d
. If the common difference is positive, then the members (terms) will grow towards positive infinity. But if the common difference is negative, then the members (terms) will grow towards negative infinity.
Formula of the nth term of an A.P:
a
is the initial term, and d
is a common difference. Thus, the explicit formula is:
Formula of the sum of first nth term of A.P:
General Formulas to solve problems related to Arithmetic Progressions:
If a
is the first term and d
too, that would be a common difference:
- nth term of an AP =
a + (n-1)*d
. - Arithmetic Mean =
Sum of all terms in the AP / Number of terms in the AP
. - Sum of ‘n’ terms of an AP = 0.5 n (first term + last term) =
0.5 n [ 2a + (n-1) d ]
.
Average (Mean)
Calculate the average of a list of numbers using mean.
Calculating the mean of a list of numbers is one of the most common ways to determine the average of those numbers.
Calculating a mean would be useful in these situations:
- Determining the average score for all players of a video game level.
- Finding the average grade for tests that a student took this semester.
- Determining the average size of all files in a directory/folder.
- Input a list of numbers.
- Calculate the sum of all numbers in the list.
- Count the numbers in the list.
- Divide the sum by the total count of numbers in the list.
- Return mean.
Given the list [2, 4, 6, 8, 20, 50, 70]
, let's calculate the average.
Send [2, 4, 6, 8, 20, 50, 70]
as input for a method/function.
Add all the numbers together.
2 + 4 + 6 + 8 + 20 + 50 + 70 = 160
, so sum = 160
.
Count the numbers in the list.
The list has seven numbers, so count = 7
.
Divide the sum of all the numbers by the count of the numbers.
sum = 160
count = 7
If we ignore significant digits: sum / count =
22.857142
If we properly consider significant digits: sum / count = 23
Return the value of 22.857142 or 23
.
Fibonacci
In mathematics, the Fibonacci numbers commonly denoted F(n), form a sequence, called the Fibonacci sequence, such that each number is the sum of the two preceding ones, starting from 0 and 1. The Sequence looks like this:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...]
Finding
N-th
member of this sequence would be useful in many Applications:
- Recently Fibonacci sequence and the golden ratio are of great interest to researchers in many fields of science including high energy physics, quantum mechanics, Cryptography and Coding.
- Prepare Base Matrice
- Calculate the power of this Matrice
- Take Corresponding value from Matrix
Find 8-th
member of Fibonacci
| F(n+1) F(n) |
| F(n) F(n-1)|
Calculate matrix^1
| 1 1 |
| 1 0 |
Calculate matrix^2
| 2 1 |
| 1 1 |
Calculate matrix^4
| 5 3 |
| 3 2 |
Calculate matrix^8
| 34 21 |
| 21 13 |
F(8)=21
Finding the number of digits in a number
Let's say N = 2019
. The number of digits in N here is 4 and the digits are: 2
, 0
, 1
, and 9
.
Some more Examples:
N = 00 [zero]
Number of digits = 0
N = -123 [negative]
Number of digits = 3
N = 10000 [positive]
Number of digits = 5
The first solution that comes to mind is quite simple:
1. Check whether the number N is equal to zero.
2. Increase the count of digits by 1 if N is not zero.
3. Reduce the number by dividing it by 10.
4. Repeat the above steps until the number is reduced to zero.
Analysis of the above algorithm: You can clearly see that the number of operations performed in the above solution is equal to the count of digits present in the number. So, the time complexity of the solution is O(digitsCount).
Dry-run of the above algorithm: Consider an example, N = 58964. Initialize a variable digitsCount to zero which will store the count of digits. Keep incrementing digitsCount until N is not zero, and reduce it by dividing by 10 at each step.
Iteration 1: N not equals to 0
Increment digitsCount, digitsCount = digitsCount + 1.
digitsCount = 0 + 1 = 1.
N = N/10 = 58964/10 = 5896.
Iteration 2: N not equals to 0
Increment digitsCount, digitsCount = digitsCount + 1.
digitsCount = 1 + 1 = 2.
N = N/10 = 5896/10 = 589.
Iteration 3: N not equals to 0
Increment digitsCount, digitsCount = digitsCount + 1.
digitsCount = 2 + 1 = 3.
N = N/10 = 589/10 = 58.
Iteration 4: N not equals to 0
Increment digitsCount, digitsCount = digitsCount + 1.
digitsCount = 3 + 1 = 4.
N = N/10 = 58/10 = 5.
Iteration 5: N not equals to 0
Increment digitsCount, digitsCount = digitsCount + 1.
digitsCount = 4 + 1 = 5.
N = N/10 = 5/10 = 0.
Iteration 6: N becomes equal to 0.
Terminate any further operation.
Return value of digitsCount.
Therefore, number of digits = 5.
A better solution is to use mathematics to solve this problem. The number of digits in a number say N can be easily obtained by using the following formula:
number of digits in N = log10(N) + 1.
Derivation: Suppose the number of digits in the number N is K.
Therefore, we can say that:
10^(K-1) <= N < 10K
Applying base-10 logarithm to both sides in the above equation, we get:
K-1 <= log10(N) < K.
or, K - 1 + 1 <= log10(N) + 1 < K + 1
or, K <= log10(N) + 1 < K + 1
Therefore,
K = floor(log10(N) + 1)
Analysis of the above algorithm: The above algorithm uses two mathematical functions: the logarithm of a number
and the floor function
. Therefore, its time complexity depends on the complexity of those two functions. Practically, the floor function
is always, or can at least easily be made, constant time - all it has to do is: drop the digits behind the decimal point. For practical purposes, one can assume that the logarithm is constant time
as well, as one will usually be working with fixed-width floating-point values. If one uses arbitrary-precision "big number" libraries
however, logarithm will not be constant anymore: performance will depend on the logarithm algorithms used.
Geometric Progression
# Geometric ProgressionA sequence of numbers is said to be in a Geometric progression
if the ratio of any two consecutive terms is always the same. In simple terms, it means that the next number in the series is calculated by multiplying a fixed number to the previous number in the series.
For example, 2, 4, 8, 16 is a GP because ratio of any two consecutive terms in the series (common ratio) is the same (4 / 2 = 8 / 4 = 16 / 8 = 2).
Facts about Geometric Progression:
- Initial term: In a geometric progression, the first number is called the initial term.
- Common ratio: The ratio of any two consecutive terms by taking the previous term in the denominator.
- The behaviour of a geometric sequence depends on the value of the common ratio. If the common ratio is:
- Positive, the terms will all be of the same sign as the initial term.
- Negative, the terms will alternate between positive and negative.
- Greater than 1, there will be exponential growth towards positive or negative infinity (depending on the sign of the initial term).
- 1, the progression is a constant sequence.
- Between -1 and 1 but not zero, there will be exponential decay towards zero.
- -1, the progression is an alternating sequence.
- Less than -1, for the absolute values there is exponential growth towards (unsigned) infinity, due to the alternating sign.
Formula of the nth term of a G.P:
a
is the initial term, and d
is a common difference. Thus, the explicit formula is:
Formula of the sum of the first nth term of G.P:
General Formulas to solve problems related to Geometric Progressions:
If a
is the first term and r
is the common ratio:
nth term of a GP = a*rn-1
.
- Geometric Mean =
nth root of the product of n terms in the GP
. - Sum of
n
terms of a GP (r < 1) =[a (1 – rn)] / [1 – r]
. - Sum of
n
terms of a GP (r > 1) =[a (rn – 1)] / [r – 1]
. - Sum of infinite terms of a GP (r < 1) =
(a) / (1 – r)
.
Caesar Cipher
The Caesar cipher is a simple cipher and one of the best known encryption algorithms. It is very simple to encrypt, decrypt and intercept. The Caesar cipher is a substitution cipher where each letter in the plain-text (decoded text) is replaced by a letter a certain number of spaces to the right of the letter in the alphabet. (The amount of spaces is called the key or shift and is only known by the sender and intended receiver).
Disclaimer: Do not attempt to encrypt personal data or serious messages with this cipher!!! It takes only half a second to crack by a computer!
- It takes a very small amount of time to encode and decode messages. (Less than a second, usually)
- No real applications exist for the cipher as it is the most insecure out there.
- This cipher was invented by Julius Caesar as a way to send messages of high military significance.
- Choose the alphabet you are going to use.
- Choose a secret key (shift) that you are going to use in this case
n
. - For every letter in the plain-text, replace it by a letter of the alphabet that is
n
letters away from the letter. (Ex: for a key of1
,a
would becomeb
,z
would becomea
, etc.) - The message should now be encoded.
- Choose the alphabet that the message was encrypted with.
- Let
n
be the secret key the message is encoded in. - For every letter in the cipher-text, replace it by a letter of the alphabet that is
n
letters behind in the alphabet from the letter.c
would beb
,a
would bez
with a key of1
. - The message should now be decoded
Let us say we are sending a secret message to a friend.
- We first write out our message. In this case:
The Caesar cipher is a fun substitution cipher
- Our alphabet will be:
abcdefghijklmnopqrstuvwxyz
. For the uses of this tutorial, case doesn't matter. (On a shift of1
:A
will becomeB
,a
will becomeb
) - Let our key be 6.
- Starting with the first letter:
T
. The letter 6 letters away isZ
. We addZ
to the message. - The second letter is
h
. The letter 6 letters away isn
. Our message is nowZn
- We continue like that until the end. Our final message is:
Znk Igkygx iovnkx oy g lat yahyzozazout iovnkx.
- Decryption is the same way, except instead of going to the right in the alphabet, we go backwards.
Hill Cipher
The Hill cipher was invented by Lester S. Hill.
Hill cipher is a polygraphic substitution cipher based on linear algebra. Each letter is represented by a number modulo 26. Often the simple scheme A = 0, B = 1, …, Z = 25
is used, but this is not an essential feature of the cipher. To encrypt a message, each block of n
letters (considered as an n-component vector) is multiplied by an invertible n × n
matrix, against modulus 26. To decrypt the message, each block is multiplied by the inverse of the matrix used for encryption.
Suppose we take an example as:
Plain Text (PT):ACT
key:GYBNQKURP
- We have to write key as an
n × n
matrix as
[6 24 1]
[13 16 10]
[20 17 15]
- Same way convert PT into a vector as
[0]
[2]
[19]
- Now, we need to encipher the vector by just multiplying these two matrices
[6 24 1] [0] [67] [15]
[13 16 10] * [2] = [222] ≈ [4] (mod 26)
[20 17 15] [19] [319] [7]
So we will get the encrypted text as POH.
- We need to first inverse our key matrix
-1
[6 24 1] [8 5 10]
[13 16 10] ≈ [21 8 21] (mod 26)
[20 17 15] [21 12 8]
- For the previous Cipher Text POH
[8 5 10] [15] [260] [0]
[21 8 21] * [14] ≈ [574] ≈ [2] (mod 26) ≈ ACT
[21 12 8] [7] [539] [19]
Bellman-Ford
Given a weighted directed graph G(V,E) and a source vertex s ∈ V, determine for each vertex v ∈ V the shortest path between s and v.
- Initialize the distance from the source to all vertices as infinite.
- Initialize the distance to itself as 0.
- Create an array dist[] of size |V| with all values as infinite except dist[s].
- Repeat the following |V| - 1 times. Where |V| is number of vertices.
- Create another loop to go through each edge (u, v) in E and do the following:
- dist[v] = minimum(dist[v], dist[u] + weight of edge).
- Lastly iterate through all edges on last time to make sure there are no negatively weighted cycles.
O(VE)
O(V^2)
- Richard Bellman & Lester Ford, Jr.
# of vertices in graph = 5 [A, B, C, D, E]
# of edges in graph = 8
edges [A->B, A->C, B->C, B->D, B->E, D->C, D->B, E->D]
weight [ -1, 4, 3, 2, 2, 5, 1, -4 ]
source [ A, A, B, B, B, D, D, E ]
// edge A->B
graph->edge[0].src = A
graph->edge[0].dest = B
graph->edge[0].weight = -1
// edge A->C
graph->edge[1].src = A
graph->edge[1].dest = C
graph->edge[1].weight = 4
// edge B->C
graph->edge[2].src = B
graph->edge[2].dest = C
graph->edge[2].weight = 3
// edge B->D
graph->edge[3].src = B
graph->edge[3].dest = D
graph->edge[3].weight = 2
// edge B->E
graph->edge[4].src = B
graph->edge[4].dest = E
graph->edge[4].weight = 2
// edge D->C
graph->edge[5].src = D
graph->edge[5].dest = C
graph->edge[5].weight = 5
// edge D->B
graph->edge[6].src = D
graph->edge[6].dest = B
graph->edge[6].weight = 1
// edge E->D
graph->edge[7].src = E
graph->edge[7].dest = D
graph->edge[7].weight = -3
for source = A
Vertex Distance from Source
A 0 A->A
B -1 A->B
C 2 A->B->C = -1 + 3
D -2 A->B->E->D = -1 + 2 + -3
E 1 A->B->E = -1 + 2
A video explaining the Bellman-Ford Algorithm
Sources Used:
Singly Linked List
# Singly Linked ListSingly Linked List is a linear and connected data structure made of Nodes. Each node is composed of a variable data
where its content is stored and a pointer to the next Node on the list. The Linked List has a pointer to the first element of this Node sequence and may also have another pointer to the last Node to make operations at the far end less time-consuming. You can also store a length
variable to store the total length.
- Size of a linked list is not fixed (dynamic size)
- Deleting and adding an element is not expensive compared to an array
- Elements can be accessed sequentially not randomly compared to an array
- Extra memory allocation needs to be done for pointers which connects elements in a linked list
Operation | Average | Worst |
---|---|---|
Access | O(n) | O(n) |
Search | O(n) | O(n) |
Insertion | O(1) | O(1) |
Deletion | O(1) | O(1) |
class LinkedList {
Node head; // Pointer to the first element
Node tail; // Optional. Points to the last element
int length; // Optional
class Node {
int data; // Node data. Can be int, string, float, templates, etc
Node next; // Pointer to the next node on the list
}
}
Doubly Linked List
Singly Linked List is a linear and connected data structure made of Nodes. Each node is composed of a variable data
where its content is stored and a pointer to the next Node on the list. The Linked List has a pointer to the first element of this Node sequence and may also have another pointer to the last Node to make operations at the far end less time-consuming. You can also store a length
variable to store the total length.
A Doubly Linked List (DLL) contains an extra pointer, typically called previous pointer, together with next pointer and data which are there in singly linked list.
- A DLL can be traversed in both forward and backward direction.
- The delete operation in DLL is more efficient if pointer to the node to be deleted is given.
- We can quickly insert a new node before a given node. In singly linked list, to delete a node, pointer to the previous node is needed. To get this previous node, sometimes the list is traversed. In DLL, we can get the previous node using previous pointer.
- Every node of DLL Require extra space for an previous pointer. It is possible to implement DLL with single pointer though (See this and this).
- All operations require an extra pointer previous to be maintained. For example, in insertion, we need to modify previous pointers together with next pointers. For example in following functions for insertions at different positions, we need 1 or 2 extra steps to set previous pointer.
Operation | Average | Worst |
---|---|---|
Access | Θ(n) | O(n) |
Search | Θ(n) | O(n) |
Insertion | Θ(1) | O(1) |
Deletion | Θ(1) | O(1) |
class LinkedList {
Node head; // Pointer to the first element
Node tail; // Optional. Points to the last element
int length; // Optional
class Node {
int data; // Node data. Can be int, string, float, templates, etc
Node next; // Pointer to the next node on the list
Node prev;
Node(int data) {
this.data = data;
}
}
// Adding a node at the front of the list
public void push(int new_data) {
/* 1. allocate node
* 2. put in the data */
Node new_Node = new Node(new_data);
/* 3. Make next of new node as head and previous as NULL */
new_Node.next = head;
new_Node.prev = null;
/* 4. change prev of head node to new node */
if (head != null)
head.prev = new_Node;
/* 5. move the head to point to the new node */
head = new_Node;
}
/* Given a node as prev_node, insert a new node after the given node */
public void InsertAfter(Node prev_Node, int new_data) {
/*1. check if the given prev_node is NULL */
if (prev_Node == null) {
System.out.println("The given previous node cannot be NULL ");
return;
}
/* 2. allocate node
* 3. put in the data */
Node new_node = new Node(new_data);
/* 4. Make next of new node as next of prev_node */
new_node.next = prev_Node.next;
/* 5. Make the next of prev_node as new_node */
prev_Node.next = new_node;
/* 6. Make prev_node as previous of new_node */
new_node.prev = prev_Node;
/* 7. Change previous of new_node's next node */
if (new_node.next != null)
new_node.next.prev = new_node;
}
}
A CS50 video explaining the Doubly Linked List Data Structure
Coin Change
Given a value N
, if we want to make change for N
cents, and we have infinite supply of each of S = {S1, S2, .. , Sm}
valued coins, how many ways can we make the change? The order of coins doesn’t matter.
Let the dp[i]
be the length of the coin change of prefix N[1..i]
. Our answer is dp[N]
.
We fill dp[0]
as 1 because there is only one way to get 0 coins (We pick no coins).
Now let's try calculate dp[i]
for any i
. dp[0..i]
will store each sub problems from 0
to N
. That's why the answer will be dp[N]
. First, we need to iterate each coin types to pick them one-by-one. Then we iterate the sub problems from current coin that we pick before to N
cents. That's why we must make dp table with N
columns.
This is the codes for the Coin Change algorithm:
for coin_val in S:
for i in range(coin_val, n + 1):
dp[i] += dp[i - coin_val]
In the second iteration, for every cent that can be exchanged, we take it by subtracting the i-th column by the value of the coin we take and adding it into the current column. So dp[i]
will store the current sub problem.
O(N * S)
in any case
O(N)
- simple implementation. We only need 1D array to store the answer.
Let's say we have 3 coin types [1,2,3]
and we want to change for 7
cents. So we will define our table like this.
[1, 0, 0, 0, 0, 0, 0, 0]
0th column will store 1 since there is only one way to get 0 cents.
- For the first iteration we take a coin that has a value of 1. Then for all sub problems, there is only one way to make change. For 7 cents, the only way is
{1,1,1,1,1,1,1}
. On the final iteration, our table be like:
[1, 1, 1, 1, 1, 1, 1, 1]
- For the second iteration, we take a coin that has a value of 2. From here, all sub problems that can be divided by 2 will store another new way to make change. So, when the iteration stopped at 2nd column it will be like
dp[2] += dp[0]
. We know thatdp[0]
stored a value of 1. Thus, dp[2] will store the value of1 + 1 = 2
. From here we know that for 2 cents, there are 2 ways{1,1}
and{2}
. And this operation will continue. Now our table be like:
[1, 1, 2, 2, 3, 3, 4, 4]
4 ways to make 7 cents using value of 1 and 2. {{1,1,1,1,1,1,1}, {1,1,1,1,1,2}, {1,1,1,2,2}, {1,2,2,2}}
- For the final iteration (3rd iteration), we take a coin that has a value of 3. Like before, now all the columns that can be devided by 3 will store another new way. And the final result will be like:
[1, 1, 2, 3, 4, 5, 7, 8]
So the final answer is 8. 8 ways to make change of 7 cents using all coin types. {{1,1,1,1,1,1,1}, {1,1,1,1,1,2}, {1,1,1,2,2}, {1,2,2,2}, {1,1,1,1,3}, {1,3,3}, {2,2,3}, {1,1,2,3}}
Longest Common Subsequence
Given two strings S
and T
, find the length of the longest common subsequence (LCS).
Let the dp[i][j]
be the length of the longest common subsequence of prefixes S[1..i]
and T[1..j]
. Our answer (the length of LCS) is dp[|S|][|T|]
since the prefix of the length of string is the string itself.
Both dp[0][i]
and dp[i][0]
are 0
for any i
since the LCS of empty prefix and anything else is an empty string.
Now let's try to calculate dp[i][j]
for any i
, j
. Let's say S[1..i] = *A
and T[1..j] = *B
where *
stands for any sequence of letters (could be different for S
and T
), A
stands for any letter and B
stands for any letter different from A
. Since A != B
, our LCS doesn't include A
or B
as a last character. So we could try to throw away A
or B
character. If we throw A
, our LCS length will be dp[i - 1][j]
(since we have prefixes S[1..i - 1]
and T[1..j]
). If we try to throw B
character, we will have prefixes S[1..i]
and T[1..j - 1]
so the length of LCS will be dp[i][j - 1]
. As we are looking for the Longest common subsequence, we will pick the maximum value from dp[i][j - 1]
and dp[i - 1][j]
.
But what if S[1..i] = *A
and T[1..j] = *A
? We could say that the LCS of our prefixes is LCS of prefixes S[1..i - 1]
and T[1..j - 1]
plus the letter A
. So dp[i][j] = dp[i - 1][j - 1] + 1
if S[i] = T[j]
.
We could see that we can fill our dp
table row by row, column by column. So our algorithm will be like:
- Let's say that we have strings
S
of the length N andT
of the length M (numbered from 1). Let's create the tabledp
of size(N + 1) x (M + 1)
numbered from 0. - Let's fill the 0th row and the 0th column of
dp
with 0. - Then, we follow the algorithm:
for i in range(1..N):
for j in range(1..M):
if(S[i] == T[j])
dp[i][j] = dp[i - 1][j - 1] + 1
else
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])
O(N * M)
In any case
O(N * M)
- simple implementation
O(min {N, M})
- two-layers implementation (as dp[i][j]
depends on only i-th and i-th layers, we coudld store only two layers).
Let's say we have strings ABCB
and BBCB
. We will build such a table:
# # A B C B
# 0 0 0 0 0
B 0 ? ? ? ?
B 0 ? ? ? ?
C 0 ? ? ? ?
B 0 ? ? ? ?
Now we will start to fill our table from 1st row. Since S[1] = A
and T[1] = B
, the dp[1][1]
will be tha maximal value of dp[0][1] = 0
and dp[1][0] = 0
. So dp[1][1] = 0
. But now S[2] = B = T[1]
, so dp[1][2] = dp[0][1] + 1 = 1
. dp[1][3]
is 1
since A != C
and we pick max{dp[1][2], dp[0][3]}
. And dp[1][4] = dp[0][3] + 1 = 1
.
# # A B C B
# 0 0 0 0 0
B 0 0 1 1 1
B 0 ? ? ? ?
C 0 ? ? ? ?
B 0 ? ? ? ?
Now let's fill the other part of the table:
# # A B C B
# 0 0 0 0 0
B 0 0 1 1 1
B 0 0 1 1 2
C 0 0 1 2 2
B 0 0 1 2 3
So the length of LCS is dp[4][4] = 3
.
Binary Search (A divide and conquer algorithm)
# Binary Search (A divide and conquer algorithm)Given a sorted array of n elements, write a function to search for the index of a given element (target)
- Search for the array by dividing the array in half repeatedly.
- Initially consider the actual array and pick the element at the middle index
- Keep a lower index i.e. 0 and higher index i.e. length of array
- If it is equal to the target element then return the index
- Else if it is greater than the target element then consider only the left half of array. (lower index = 0, higher = middle - 1)
- Else if it is less than the target element then consider only the right half of array. (lower index = middle + 1, higher = length of array)
- Return -1 if target element is not found in the array (Base Case: If lower index is greater than or equal to higher index)
O(log n) Worse Case
O(1) Best Case (If middle element of initial array is the target element)
O(1) For iterative approach
O(log n) For recursive approach due to recursion call stack
arr = [1,2,3,4,5,6,7]
target = 2
Initially the element at middle index is 4 which is greater than 2. Therefore we search the left half of the
array i.e. [1,2,3].
Here we find the middle element equal to target element so we return its index i.e. 1
target = 9
Binary Search should return -1 as 9 is not present in the array
Exponential Search
Given a sorted array of n elements, write a function to search for the index of a given element (target)
- Search for the range within which the target is included increasing index by powers of 2
- If this range exists in array apply the Binary Search algorithm over it
- Else return -1
arr = [1, 2, 3, 4, 5, 6, 7, ... 998, 999, 1_000]
target = 998
index = 0
1. SEARCHING FOR THE RANGE
index = 1, 2, 4, 8, 16, 32, 64, ..., 512, ..., 1_024
after 10 iteration we have the index at 1_024 and outside of the array
2. BINARY SEARCH
Now we can apply the binary search on the subarray from 512 and 1_000.
Note: we apply the Binary Search from 512 to 1_000 because at i = 2^10 = 1_024
the array is finisced and the target number is less than the latest index of the array ( 1_000 ).
worst case: O(log *i*)
where *i* = index
(position) of the target
best case: O(*1*)
- The complexity of the first part of the algorithm is O( log i ) because if i is the position of the target in the array, after doubling the search index
⌈log(i)⌉
times, the algorithm will be at a search index that is greater than or equal to i. We can write2^⌈log(i)⌉ >= i
- The complexity of the second part of the algorithm also is O ( log i ) because that is a simple Binary Search. The Binary Search complexity ( as explained here ) is O( n ) where n is the length of the array. In the Exponential Search, the length of the array on which the algorithm is applied is
2^i - 2^(i-1)
, put into words it means '( the length of the array from start to i ) - ( the part of array skipped until the previous iteration )'. Is simple verify that2^i - 2^(i-1) = 2^(i-1)
After this detailed explanation we can say that the the complexity of the Exponential Search is:
O(log i) + O(log i) = 2O(log i) = O(log i)
Let's take a look at this comparison with a less theoretical example. Imagine we have an array with1_000_000
elements and we want to search an element that is in the 4th
position. It's easy to see that:
- The Binary Search start from the middle of the array and arrive to the 4th position after many iterations
- The Exponential Search arrive at the 4th index after only 2 iterations
Linear Search
# Linear SearchGiven an array of n elements, write a function to search for the index of a given element (target)
- Start iterating with the first element in the array.
- Compare it with the target element
- If it is equal to the target element then return the index
- Else continue iterating
- Return -1 if target element is not found in the array
O(n) Worse Case
O(1) Best Case (If first element of array is the target element)
O(1)
arr = [1, 3, 9, 5, 0, 2]
target = 5
Linear Search should return index 3 as 5 is on index 3
target = 6
Linear Search should return -1 as 6 is not present in the array
Quick Sort
Given an unsorted array of n elements, write a function to sort the array
- Make the right-most index value pivot
- partition the array using pivot value
- quicksort left partition recursively
- quicksort right partition recursively
O(n^2)
Worst case performanceO(n log n)
Best-case performanceO(n log n)
Average performance
O(log n)
Worst case
Tony Hoare in 1959
arr[] = {10, 80, 30, 90, 40, 50, 70}
Indexes: 0 1 2 3 4 5 6
low = 0, high = 6, pivot = arr[h] = 70
Initialize index of smaller element, i = -1
Traverse elements from j = low to high-1
j = 0 : Since arr[j] <= pivot, do i++ and swap(arr[i], arr[j])
i = 0
arr[] = {10, 80, 30, 90, 40, 50, 70} // No change as i and j
// are same
j = 1 : Since arr[j] > pivot, do nothing
// No change in i and arr[]
j = 2 : Since arr[j] <= pivot, do i++ and swap(arr[i], arr[j])
i = 1
arr[] = {10, 30, 80, 90, 40, 50, 70} // We swap 80 and 30
j = 3 : Since arr[j] > pivot, do nothing
// No change in i and arr[]
j = 4 : Since arr[j] <= pivot, do i++ and swap(arr[i], arr[j])
i = 2
arr[] = {10, 30, 40, 90, 80, 50, 70} // 80 and 40 Swapped
j = 5 : Since arr[j] <= pivot, do i++ and swap arr[i] with arr[j]
i = 3
arr[] = {10, 30, 40, 50, 80, 90, 70} // 90 and 50 Swapped
We come out of loop because j is now equal to high-1.
Finally we place pivot at correct position by swapping
arr[i+1] and arr[high] (or pivot)
arr[] = {10, 30, 40, 50, 70, 90, 80} // 80 and 70 Swapped
Now 70 is at its correct place. All elements smaller than
70 are before it and all elements greater than 70 are after
it.
Recursive Bubble Sort
Bubble Sort is one of the simplest sorting algorithms that compares two elements at a time and swaps them if they are in the wrong order. This process is repeated until the entire sequence is in order.
- Time Complexity:
O(n ^ 2)
for average case;O(n)
for best case. - Space Complexity:
O(n)
; note that iterative bubble sort has space complexity asO(1)
.
Base case: If the size of the array is 1, return.
- We need to fix the last element of the current sub-array. For this, iterate over the entire array using normal Bubble Sort, and perform swapping.
- Next, call the function on the entire array excluding the last element(which was fixed by the iteration in the above step)
- Repeat until Base Case is reached.
Let the given array be: {5, 3, 2, 1, 4}
First Iteration:
- {
5
,3
, 2, 1, 4} -> {3
,5
, 2, 1, 4} Swap since5 > 3
- {3,
5
,2
, 1, 4} -> {3,2
,5
, 1, 4} Swap since5 > 2
- {3, 2,
5
,1
, 4} -> {3, 2,1
,5
, 4} Swap since5 > 1
- {3, 2, 1,
5
,4
} -> {3, 2, 1,4
,5
} Swap since5 > 4
This iteration has fixed the position of 5. Now, we will consider the array up to index 3.
Second Iteration:
- {
3
,2
, 1, 4, 5} -> {2
,3
, 1, 4, 5} Swap since3 > 2
- {2,
3
,1
, 4, 5} -> {2,1
,3
, 4, 5} Swap since3 > 1
- {2, 1,
3
,4
, 5}; As3 < 4
, do not swap
Note: As we check one less element with every iteration, we do not need elements at index 3 and 4 i.e., 4
and 5
, as 5 is already in order. Formally, for an array with n
integers, we consider elements only up to index n - i
, where i
is the iteration number.
Third Iteration:
- {
2
,1
, 3, 4, 5} -> {1
,2
, 3, 4, 5} Swap since1 > 2
- {1,
2
,3
, 4, 5}; As2 < 3
, do not swap
Fourth Iteration:
- {
1
,2
, 3, 4, 5}; As1 < 2
, do not swap
Fifth Iteration:
- {
1
, 2, 3, 4, 5}; As the size of the array is 1, return.
Note: This is the base case.
void bubbleSort(arr[], n)
if(n==1)
return;
for(i = 0; i<n-1; i++)
if(arr[i] > arr[i+1])
swap(arr[i], arr[i+1])
bubbleSort(arr, n-1)
A video explaining iterative as well as recursive bubble sort
Bubble Sort
Given an unsorted array of n elements, write a function to sort the array
- select the first element of the array
- compare it with its next element
- if it is larger than the next element then swap them
- else do nothing
- keep doing this for every index of the array
- repeat the above process n times.
O(n^2)
Worst case performance
O(n)
Best-case performance
O(n^2)
Average performance
O(1)
Worst case
- The term “Bubble Sort” was first used by Iverson, K in 1962.
arr[] = {10, 80, 40, 30}
Indexes: 0 1 2 3
1. Index = 0, Number = 10
2. 10 < 80, do nothing and continue
3. Index = 1, Number = 80
4. 80 > 40, swap 80 and 40
5. The array now is {10, 40, 80, 30}
6. Index = 2, Number = 80
7. 80 > 30, swap 80 and 30
8. The array now is {10, 40, 30, 80}
Repeat the Above Steps again
arr[] = {10, 40, 30, 80}
Indexes: 0 1 2 3
1. Index = 0, Number = 10
2. 10 < 40, do nothing and continue
3. Index = 1, Number = 40
4. 40 > 30, swap 40 and 30
5. The array now is {10, 30, 40, 80}
6. Index = 2, Number = 40
7. 40 < 80, do nothing
8. The array now is {10, 30, 40, 80}
Repeat the Above Steps again
arr[] = {10, 30, 40, 80}
Indexes: 0 1 2 3
1. Index = 0, Number = 10
2. 10 < 30, do nothing and continue
3. Index = 1, Number = 30
4. 30 < 40, do nothing and continue
5. Index = 2, Number = 40
6. 40 < 80, do nothing
Since there are no swaps in above steps, it means the array is sorted and we can stop here.
A video explaining the Bubble Sort Algorithm
Bubble sort is also known as Sinking sort.
.
├── ./AArch64_Assembly
│ ├── ./AArch64_Assembly/DIRECTORY.html
│ ├── ./AArch64_Assembly/DIRECTORY.md
│ ├── ./AArch64_Assembly/misc
│ │ ├── ./AArch64_Assembly/misc/2048.s
│ │ ├── ./AArch64_Assembly/misc/hello_world.s
│ │ ├── ./AArch64_Assembly/misc/josephus_problem.s
│ │ ├── ./AArch64_Assembly/misc/perfect_numbers.s
│ │ ├── ./AArch64_Assembly/misc/sha1.s
│ │ ├── ./AArch64_Assembly/misc/sha256.s
│ │ └── ./AArch64_Assembly/misc/y_combinator.s
│ ├── ./AArch64_Assembly/README.html
│ ├── ./AArch64_Assembly/README.md
│ ├── ./AArch64_Assembly/sorters
│ │ ├── ./AArch64_Assembly/sorters/bead_sort.s
│ │ ├── ./AArch64_Assembly/sorters/bogo_sort.s
│ │ ├── ./AArch64_Assembly/sorters/bubble_sort.s
│ │ ├── ./AArch64_Assembly/sorters/circle_sort.s
│ │ ├── ./AArch64_Assembly/sorters/cocktail_sort.s
│ │ ├── ./AArch64_Assembly/sorters/comb_sort.s
│ │ ├── ./AArch64_Assembly/sorters/counting_sort.s
│ │ ├── ./AArch64_Assembly/sorters/gnome_sort.s
│ │ ├── ./AArch64_Assembly/sorters/heap_sort.s
│ │ ├── ./AArch64_Assembly/sorters/insertion_sort.s
│ │ ├── ./AArch64_Assembly/sorters/jort_sort.s
│ │ ├── ./AArch64_Assembly/sorters/merge_sort.s
│ │ ├── ./AArch64_Assembly/sorters/pancake_sort.s
│ │ ├── ./AArch64_Assembly/sorters/patience_sort.s
│ │ ├── ./AArch64_Assembly/sorters/permutation_sort.s
│ │ ├── ./AArch64_Assembly/sorters/quick_sort.s
│ │ ├── ./AArch64_Assembly/sorters/radix_sort.s
│ │ ├── ./AArch64_Assembly/sorters/selection_sort.s
│ │ └── ./AArch64_Assembly/sorters/shell_sort.s
│ └── ./AArch64_Assembly/string
│ ├── ./AArch64_Assembly/string/append.s
│ ├── ./AArch64_Assembly/string/comparison.s
│ ├── ./AArch64_Assembly/string/concatenation.s
│ ├── ./AArch64_Assembly/string/interpolation.s
│ ├── ./AArch64_Assembly/string/length.s
│ ├── ./AArch64_Assembly/string/matching.s
│ ├── ./AArch64_Assembly/string/prepend.s
│ ├── ./AArch64_Assembly/string/substring.s
│ └── ./AArch64_Assembly/string/tokenize_string.s
├── ./Algorithms-Explanation
│ ├── ./Algorithms-Explanation/en
│ │ ├── ./Algorithms-Explanation/en/Basic Math
│ │ │ ├── ./Algorithms-Explanation/en/Basic Math/Arithmetic Progressions.html
│ │ │ ├── ./Algorithms-Explanation/en/Basic Math/Arithmetic Progressions.md
│ │ │ ├── ./Algorithms-Explanation/en/Basic Math/Average_Mean.html
│ │ │ ├── ./Algorithms-Explanation/en/Basic Math/Average_Mean.md
│ │ │ ├── ./Algorithms-Explanation/en/Basic Math/Fibonacci_Numbers.html
│ │ │ ├── ./Algorithms-Explanation/en/Basic Math/Fibonacci_Numbers.md
│ │ │ ├── ./Algorithms-Explanation/en/Basic Math/Finding the number of digits in a number.html
│ │ │ ├── ./Algorithms-Explanation/en/Basic Math/Finding the number of digits in a number.md
│ │ │ ├── ./Algorithms-Explanation/en/Basic Math/Geometric Pogression.html
│ │ │ └── ./Algorithms-Explanation/en/Basic Math/Geometric Pogression.md
│ │ ├── ./Algorithms-Explanation/en/Ciphers
│ │ │ ├── ./Algorithms-Explanation/en/Ciphers/caesar_cipher.html
│ │ │ ├── ./Algorithms-Explanation/en/Ciphers/caesar_cipher.md
│ │ │ ├── ./Algorithms-Explanation/en/Ciphers/hill_cipher.html
│ │ │ └── ./Algorithms-Explanation/en/Ciphers/hill_cipher.md
│ │ ├── ./Algorithms-Explanation/en/Data Structures
│ │ │ ├── ./Algorithms-Explanation/en/Data Structures/Graph
│ │ │ └── ./Algorithms-Explanation/en/Data Structures/Linked Lists
│ │ ├── ./Algorithms-Explanation/en/Dynamic Programming
│ │ │ ├── ./Algorithms-Explanation/en/Dynamic Programming/Coin Change.html
│ │ │ ├── ./Algorithms-Explanation/en/Dynamic Programming/Coin Change.md
│ │ │ ├── ./Algorithms-Explanation/en/Dynamic Programming/Longest Common Subsequence.html
│ │ │ └── ./Algorithms-Explanation/en/Dynamic Programming/Longest Common Subsequence.md
│ │ ├── ./Algorithms-Explanation/en/Image Processing
│ │ │ ├── ./Algorithms-Explanation/en/Image Processing/Harris Detector.html
│ │ │ └── ./Algorithms-Explanation/en/Image Processing/Harris Detector.md
│ │ ├── ./Algorithms-Explanation/en/README.html
│ │ ├── ./Algorithms-Explanation/en/README.md
│ │ ├── ./Algorithms-Explanation/en/Search Algorithms
│ │ │ ├── ./Algorithms-Explanation/en/Search Algorithms/Binary Search.html
│ │ │ ├── ./Algorithms-Explanation/en/Search Algorithms/Binary Search.md
│ │ │ ├── ./Algorithms-Explanation/en/Search Algorithms/Exponential Search.html
│ │ │ ├── ./Algorithms-Explanation/en/Search Algorithms/Exponential Search.md
│ │ │ ├── ./Algorithms-Explanation/en/Search Algorithms/Linear Search.html
│ │ │ └── ./Algorithms-Explanation/en/Search Algorithms/Linear Search.md
│ │ ├── ./Algorithms-Explanation/en/Selection Algorithms
│ │ │ ├── ./Algorithms-Explanation/en/Selection Algorithms/Quick Select.html
│ │ │ └── ./Algorithms-Explanation/en/Selection Algorithms/Quick Select.md
│ │ └── ./Algorithms-Explanation/en/Sorting Algorithms
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Bubble Sort.html
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Bubble Sort.md
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Counting Sort.html
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Counting Sort.md
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Heap Sort.html
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Heap Sort.md
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Insertion Sort.html
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Insertion Sort.md
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Merge Sort.html
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Merge Sort.md
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Quick Sort.html
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Quick Sort.md
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Radix Sort.html
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Radix Sort.md
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Recursive Versions
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Selection Sort.html
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Selection Sort.md
│ │ ├── ./Algorithms-Explanation/en/Sorting Algorithms/Shell Sort.html
│ │ └── ./Algorithms-Explanation/en/Sorting Algorithms/Shell Sort.md
│ ├── ./Algorithms-Explanation/README.html
│ └── ./Algorithms-Explanation/README.md
├── ./algorithms-keeper
│ ├── ./algorithms-keeper/algorithms_keeper
│ │ ├── ./algorithms-keeper/algorithms_keeper/api.py
│ │ ├── ./algorithms-keeper/algorithms_keeper/constants.py
│ │ ├── ./algorithms-keeper/algorithms_keeper/event
│ │ │ ├── ./algorithms-keeper/algorithms_keeper/event/check_run.py
│ │ │ ├── ./algorithms-keeper/algorithms_keeper/event/commands.py
│ │ │ ├── ./algorithms-keeper/algorithms_keeper/event/__init__.py
│ │ │ ├── ./algorithms-keeper/algorithms_keeper/event/installation.py
│ │ │ ├── ./algorithms-keeper/algorithms_keeper/event/issues.py
│ │ │ └── ./algorithms-keeper/algorithms_keeper/event/pull_request.py
│ │ ├── ./algorithms-keeper/algorithms_keeper/__init__.py
│ │ ├── ./algorithms-keeper/algorithms_keeper/__main__.py
│ │ ├── ./algorithms-keeper/algorithms_keeper/parser
│ │ │ ├── ./algorithms-keeper/algorithms_keeper/parser/files_parser.py
│ │ │ ├── ./algorithms-keeper/algorithms_keeper/parser/__init__.py
│ │ │ ├── ./algorithms-keeper/algorithms_keeper/parser/python_parser.py
│ │ │ ├── ./algorithms-keeper/algorithms_keeper/parser/record.py
│ │ │ └── ./algorithms-keeper/algorithms_keeper/parser/rules
│ │ └── ./algorithms-keeper/algorithms_keeper/utils.py
│ ├── ./algorithms-keeper/mypy.ini
│ ├── ./algorithms-keeper/Procfile
│ ├── ./algorithms-keeper/pytest.ini
│ ├── ./algorithms-keeper/README.html
│ ├── ./algorithms-keeper/README.md
│ ├── ./algorithms-keeper/requirements-dev.txt
│ ├── ./algorithms-keeper/requirements.txt
│ ├── ./algorithms-keeper/runtime.txt
│ └── ./algorithms-keeper/tests
│ ├── ./algorithms-keeper/tests/data
│ │ ├── ./algorithms-keeper/tests/data/annotation.py
│ │ ├── ./algorithms-keeper/tests/data/descriptive_name.py
│ │ ├── ./algorithms-keeper/tests/data/doctest.py
│ │ ├── ./algorithms-keeper/tests/data/__init__.py
│ │ ├── ./algorithms-keeper/tests/data/no_errors.py
│ │ └── ./algorithms-keeper/tests/data/return_annotation.py
│ ├── ./algorithms-keeper/tests/__init__.py
│ ├── ./algorithms-keeper/tests/test_api.py
│ ├── ./algorithms-keeper/tests/test_check_runs.py
│ ├── ./algorithms-keeper/tests/test_commands.py
│ ├── ./algorithms-keeper/tests/test_installations.py
│ ├── ./algorithms-keeper/tests/test_issues.py
│ ├── ./algorithms-keeper/tests/test_main.py
│ ├── ./algorithms-keeper/tests/test_parser.py
│ ├── ./algorithms-keeper/tests/test_pull_requests.py
│ ├── ./algorithms-keeper/tests/test_rules.py
│ ├── ./algorithms-keeper/tests/test_utils.py
│ └── ./algorithms-keeper/tests/utils.py
├── ./C
│ ├── ./C/client_server
│ │ ├── ./C/client_server/client.c
│ │ ├── ./C/client_server/CMakeLists.txt
│ │ ├── ./C/client_server/server.c
│ │ ├── ./C/client_server/udp_client.c
│ │ └── ./C/client_server/udp_server.c
│ ├── ./C/CMakeLists.txt
│ ├── ./C/CodingGuidelines.html
│ ├── ./C/CodingGuidelines.md
│ ├── ./C/conversions
│ │ ├── ./C/conversions/binary_to_decimal.c
│ │ ├── ./C/conversions/binary_to_hexadecimal.c
│ │ ├── ./C/conversions/binary_to_octal.c
│ │ ├── ./C/conversions/c_atoi_str_to_integer.c
│ │ ├── ./C/conversions/CMakeLists.txt
│ │ ├── ./C/conversions/decimal_to_binary.c
│ │ ├── ./C/conversions/decimal_to_binary_recursion.c
│ │ ├── ./C/conversions/decimal_to_hexa.c
│ │ ├── ./C/conversions/decimal_to_octal.c
│ │ ├── ./C/conversions/decimal_to_octal_recursion.c
│ │ ├── ./C/conversions/hexadecimal_to_octal2.c
│ │ ├── ./C/conversions/hexadecimal_to_octal.c
│ │ ├── ./C/conversions/infix_to_postfix.c
│ │ ├── ./C/conversions/int_to_string.c
│ │ ├── ./C/conversions/octal_to_binary.c
│ │ ├── ./C/conversions/octal_to_decimal.c
│ │ ├── ./C/conversions/octal_to_hexadecimal.c
│ │ └── ./C/conversions/to_decimal.c
│ ├── ./C/data_structures
│ │ ├── ./C/data_structures/array
│ │ │ ├── ./C/data_structures/array/carray.c
│ │ │ ├── ./C/data_structures/array/carray.h
│ │ │ ├── ./C/data_structures/array/carray_tests.c
│ │ │ ├── ./C/data_structures/array/README.html
│ │ │ └── ./C/data_structures/array/README.md
│ │ ├── ./C/data_structures/binary_trees
│ │ │ ├── ./C/data_structures/binary_trees/avl_tree.c
│ │ │ ├── ./C/data_structures/binary_trees/binary_search_tree.c
│ │ │ ├── ./C/data_structures/binary_trees/create_node.c
│ │ │ ├── ./C/data_structures/binary_trees/recursive_traversals.c
│ │ │ ├── ./C/data_structures/binary_trees/red_black_tree.c
│ │ │ ├── ./C/data_structures/binary_trees/segment_tree.c
│ │ │ ├── ./C/data_structures/binary_trees/threaded_binary_trees.c
│ │ │ └── ./C/data_structures/binary_trees/words_alphabetical.c
│ │ ├── ./C/data_structures/dictionary
│ │ │ ├── ./C/data_structures/dictionary/dict.c
│ │ │ ├── ./C/data_structures/dictionary/dict.h
│ │ │ ├── ./C/data_structures/dictionary/README.html
│ │ │ ├── ./C/data_structures/dictionary/README.md
│ │ │ └── ./C/data_structures/dictionary/test_program.c
│ │ ├── ./C/data_structures/dynamic_array
│ │ │ ├── ./C/data_structures/dynamic_array/dynamic_array.c
│ │ │ ├── ./C/data_structures/dynamic_array/dynamic_array.h
│ │ │ ├── ./C/data_structures/dynamic_array/main.c
│ │ │ └── ./C/data_structures/dynamic_array/Makefile
│ │ ├── ./C/data_structures/graphs
│ │ │ ├── ./C/data_structures/graphs/bellman_ford.c
│ │ │ ├── ./C/data_structures/graphs/bfs.c
│ │ │ ├── ./C/data_structures/graphs/bfs_queue.c
│ │ │ ├── ./C/data_structures/graphs/dfs.c
│ │ │ ├── ./C/data_structures/graphs/dfs_recursive.c
│ │ │ ├── ./C/data_structures/graphs/dijkstra.c
│ │ │ ├── ./C/data_structures/graphs/euler.c
│ │ │ ├── ./C/data_structures/graphs/floyd_warshall.c
│ │ │ ├── ./C/data_structures/graphs/graph.c
│ │ │ ├── ./C/data_structures/graphs/graph.h
│ │ │ ├── ./C/data_structures/graphs/hamiltonian.c
│ │ │ ├── ./C/data_structures/graphs/kruskal.c
│ │ │ ├── ./C/data_structures/graphs/Makefile
│ │ │ ├── ./C/data_structures/graphs/queue.c
│ │ │ ├── ./C/data_structures/graphs/queue.h
│ │ │ ├── ./C/data_structures/graphs/strongly_connected_components.c
│ │ │ ├── ./C/data_structures/graphs/topological_sort.c
│ │ │ └── ./C/data_structures/graphs/transitive_closure.c
│ │ ├── ./C/data_structures/hash_set
│ │ │ ├── ./C/data_structures/hash_set/hash_set.c
│ │ │ ├── ./C/data_structures/hash_set/hash_set.h
│ │ │ ├── ./C/data_structures/hash_set/main.c
│ │ │ └── ./C/data_structures/hash_set/Makefile
│ │ ├── ./C/data_structures/heap
│ │ │ ├── ./C/data_structures/heap/max_heap.c
│ │ │ └── ./C/data_structures/heap/min_heap.c
│ │ ├── ./C/data_structures/linked_list
│ │ │ ├── ./C/data_structures/linked_list/ascending_priority_queue.c
│ │ │ ├── ./C/data_structures/linked_list/circular_linked_list.c
│ │ │ ├── ./C/data_structures/linked_list/doubly_linked_list.c
│ │ │ ├── ./C/data_structures/linked_list/merge_linked_lists.c
│ │ │ ├── ./C/data_structures/linked_list/middle_element_in_list.c
│ │ │ ├── ./C/data_structures/linked_list/queue_linked_list.c
│ │ │ ├── ./C/data_structures/linked_list/singly_link_list_deletion.c
│ │ │ └── ./C/data_structures/linked_list/stack_using_linked_lists.c
│ │ ├── ./C/data_structures/list
│ │ │ ├── ./C/data_structures/list/list.c
│ │ │ ├── ./C/data_structures/list/list.h
│ │ │ ├── ./C/data_structures/list/main.c
│ │ │ └── ./C/data_structures/list/Makefile
│ │ ├── ./C/data_structures/queue.c
│ │ ├── ./C/data_structures/stack
│ │ │ ├── ./C/data_structures/stack/main.c
│ │ │ ├── ./C/data_structures/stack/parenthesis.c
│ │ │ ├── ./C/data_structures/stack/README.html
│ │ │ ├── ./C/data_structures/stack/README.md
│ │ │ ├── ./C/data_structures/stack/stack.c
│ │ │ ├── ./C/data_structures/stack/stack.h
│ │ │ └── ./C/data_structures/stack/stack_linked_list
│ │ ├── ./C/data_structures/stack.c
│ │ └── ./C/data_structures/trie
│ │ └── ./C/data_structures/trie/trie.c
│ ├── ./C/developer_tools
│ │ ├── ./C/developer_tools/CMakeLists.txt
│ │ ├── ./C/developer_tools/malloc_dbg.c
│ │ ├── ./C/developer_tools/malloc_dbg.h
│ │ ├── ./C/developer_tools/min_printf.h
│ │ ├── ./C/developer_tools/test_malloc_dbg.c
│ │ └── ./C/developer_tools/test_min_printf.c
│ ├── ./C/DIRECTORY.html
│ ├── ./C/DIRECTORY.md
│ ├── ./C/Doxyfile
│ ├── ./C/exercism
│ │ ├── ./C/exercism/acronym
│ │ │ ├── ./C/exercism/acronym/acronym.c
│ │ │ └── ./C/exercism/acronym/acronym.h
│ │ ├── ./C/exercism/hello_world
│ │ │ ├── ./C/exercism/hello_world/hello_world.c
│ │ │ └── ./C/exercism/hello_world/hello_world.h
│ │ ├── ./C/exercism/isogram
│ │ │ ├── ./C/exercism/isogram/isogram.c
│ │ │ └── ./C/exercism/isogram/isogram.h
│ │ ├── ./C/exercism/README.html
│ │ ├── ./C/exercism/README.md
│ │ ├── ./C/exercism/rna_transcription
│ │ │ ├── ./C/exercism/rna_transcription/rna_transcription.c
│ │ │ └── ./C/exercism/rna_transcription/rna_transcription.h
│ │ └── ./C/exercism/word_count
│ │ ├── ./C/exercism/word_count/word_count.c
│ │ └── ./C/exercism/word_count/word_count.h
│ ├── ./C/games
│ │ ├── ./C/games/CMakeLists.txt
│ │ ├── ./C/games/naval_battle.c
│ │ └── ./C/games/tic_tac_toe.c
│ ├── ./C/geometry
│ │ ├── ./C/geometry/CMakeLists.txt
│ │ ├── ./C/geometry/geometry_datatypes.h
│ │ ├── ./C/geometry/quaternions.c
│ │ └── ./C/geometry/vectors_3d.c
│ ├── ./C/graphics
│ │ ├── ./C/graphics/CMakeLists.txt
│ │ └── ./C/graphics/spirograph.c
│ ├── ./C/greedy_approach
│ │ ├── ./C/greedy_approach/djikstra.c
│ │ └── ./C/greedy_approach/prim.c
│ ├── ./C/hash
│ │ ├── ./C/hash/CMakeLists.txt
│ │ ├── ./C/hash/hash_adler32.c
│ │ ├── ./C/hash/hash_crc32.c
│ │ ├── ./C/hash/hash_djb2.c
│ │ ├── ./C/hash/hash_sdbm.c
│ │ ├── ./C/hash/hash_xor8.c
│ │ ├── ./C/hash/README.html
│ │ └── ./C/hash/README.md
│ ├── ./C/leetcode
│ │ ├── ./C/leetcode/README.html
│ │ ├── ./C/leetcode/README.md
│ │ └── ./C/leetcode/src
│ │ ├── ./C/leetcode/src/101.c
│ │ ├── ./C/leetcode/src/104.c
│ │ ├── ./C/leetcode/src/1089.c
│ │ ├── ./C/leetcode/src/108.c
│ │ ├── ./C/leetcode/src/109.c
│ │ ├── ./C/leetcode/src/110.c
│ │ ├── ./C/leetcode/src/112.c
│ │ ├── ./C/leetcode/src/1184.c
│ │ ├── ./C/leetcode/src/1189.c
│ │ ├── ./C/leetcode/src/11.c
│ │ ├── ./C/leetcode/src/1207.c
│ │ ├── ./C/leetcode/src/121.c
│ │ ├── ./C/leetcode/src/125.c
│ │ ├── ./C/leetcode/src/12.c
│ │ ├── ./C/leetcode/src/136.c
│ │ ├── ./C/leetcode/src/13.c
│ │ ├── ./C/leetcode/src/141.c
│ │ ├── ./C/leetcode/src/142.c
│ │ ├── ./C/leetcode/src/153.c
│ │ ├── ./C/leetcode/src/160.c
│ │ ├── ./C/leetcode/src/169.c
│ │ ├── ./C/leetcode/src/173.c
│ │ ├── ./C/leetcode/src/189.c
│ │ ├── ./C/leetcode/src/190.c
│ │ ├── ./C/leetcode/src/191.c
│ │ ├── ./C/leetcode/src/1.c
│ │ ├── ./C/leetcode/src/201.c
│ │ ├── ./C/leetcode/src/203.c
│ │ ├── ./C/leetcode/src/206.c
│ │ ├── ./C/leetcode/src/20.c
│ │ ├── ./C/leetcode/src/215.c
│ │ ├── ./C/leetcode/src/217.c
│ │ ├── ./C/leetcode/src/21.c
│ │ ├── ./C/leetcode/src/226.c
│ │ ├── ./C/leetcode/src/231.c
│ │ ├── ./C/leetcode/src/234.c
│ │ ├── ./C/leetcode/src/242.c
│ │ ├── ./C/leetcode/src/24.c
│ │ ├── ./C/leetcode/src/268.c
│ │ ├── ./C/leetcode/src/26.c
│ │ ├── ./C/leetcode/src/278.c
│ │ ├── ./C/leetcode/src/27.c
│ │ ├── ./C/leetcode/src/283.c
│ │ ├── ./C/leetcode/src/287.c
│ │ ├── ./C/leetcode/src/28.c
│ │ ├── ./C/leetcode/src/29.c
│ │ ├── ./C/leetcode/src/2.c
│ │ ├── ./C/leetcode/src/344.c
│ │ ├── ./C/leetcode/src/35.c
│ │ ├── ./C/leetcode/src/367.c
│ │ ├── ./C/leetcode/src/387.c
│ │ ├── ./C/leetcode/src/389.c
│ │ ├── ./C/leetcode/src/38.c
│ │ ├── ./C/leetcode/src/3.c
│ │ ├── ./C/leetcode/src/404.c
│ │ ├── ./C/leetcode/src/442.c
│ │ ├── ./C/leetcode/src/461.c
│ │ ├── ./C/leetcode/src/476.c
│ │ ├── ./C/leetcode/src/4.c
│ │ ├── ./C/leetcode/src/509.c
│ │ ├── ./C/leetcode/src/520.c
│ │ ├── ./C/leetcode/src/53.c
│ │ ├── ./C/leetcode/src/561.c
│ │ ├── ./C/leetcode/src/617.c
│ │ ├── ./C/leetcode/src/647.c
│ │ ├── ./C/leetcode/src/66.c
│ │ ├── ./C/leetcode/src/674.c
│ │ ├── ./C/leetcode/src/700.c
│ │ ├── ./C/leetcode/src/701.c
│ │ ├── ./C/leetcode/src/704.c
│ │ ├── ./C/leetcode/src/709.c
│ │ ├── ./C/leetcode/src/771.c
│ │ ├── ./C/leetcode/src/7.c
│ │ ├── ./C/leetcode/src/82.c
│ │ ├── ./C/leetcode/src/83.c
│ │ ├── ./C/leetcode/src/852.c
│ │ ├── ./C/leetcode/src/876.c
│ │ ├── ./C/leetcode/src/8.c
│ │ ├── ./C/leetcode/src/905.c
│ │ ├── ./C/leetcode/src/917.c
│ │ ├── ./C/leetcode/src/938.c
│ │ ├── ./C/leetcode/src/94.c
│ │ ├── ./C/leetcode/src/965.c
│ │ ├── ./C/leetcode/src/977.c
│ │ └── ./C/leetcode/src/9.c
│ ├── ./C/machine_learning
│ │ ├── ./C/machine_learning/adaline_learning.c
│ │ ├── ./C/machine_learning/CMakeLists.txt
│ │ ├── ./C/machine_learning/k_means_clustering.c
│ │ ├── ./C/machine_learning/kohonen_som_topology.c
│ │ └── ./C/machine_learning/kohonen_som_trace.c
│ ├── ./C/misc
│ │ ├── ./C/misc/armstrong_number.c
│ │ ├── ./C/misc/cantor_set.c
│ │ ├── ./C/misc/cartesian_to_polar.c
│ │ ├── ./C/misc/catalan.c
│ │ ├── ./C/misc/CMakeLists.txt
│ │ ├── ./C/misc/collatz.c
│ │ ├── ./C/misc/demonetization.c
│ │ ├── ./C/misc/factorial.c
│ │ ├── ./C/misc/factorial_large_number.c
│ │ ├── ./C/misc/factorial_trailing_zeroes.c
│ │ ├── ./C/misc/fibonacci.c
│ │ ├── ./C/misc/fibonacci_dp.c
│ │ ├── ./C/misc/fibonacci_fast.c
│ │ ├── ./C/misc/gcd.c
│ │ ├── ./C/misc/is_armstrong.c
│ │ ├── ./C/misc/large_factorials.c
│ │ ├── ./C/misc/lcm.c
│ │ ├── ./C/misc/lerp.c
│ │ ├── ./C/misc/lexicographic_permutations.c
│ │ ├── ./C/misc/longest_subsequence.c
│ │ ├── ./C/misc/mirror.c
│ │ ├── ./C/misc/palindrome.c
│ │ ├── ./C/misc/pid.c
│ │ ├── ./C/misc/poly_add.c
│ │ ├── ./C/misc/prime.c
│ │ ├── ./C/misc/prime_factoriziation.c
│ │ ├── ./C/misc/prime_seive.c
│ │ ├── ./C/misc/quartile.c
│ │ ├── ./C/misc/rselect.c
│ │ ├── ./C/misc/strong_number.c
│ │ ├── ./C/misc/sudoku_solver.c
│ │ ├── ./C/misc/tower_of_hanoi.c
│ │ └── ./C/misc/union_find.c
│ ├── ./C/numerical_methods
│ │ ├── ./C/numerical_methods/CMakeLists.txt
│ │ ├── ./C/numerical_methods/durand_kerner_roots.c
│ │ ├── ./C/numerical_methods/gauss_elimination.c
│ │ ├── ./C/numerical_methods/gauss_seidel_method.c
│ │ ├── ./C/numerical_methods/lagrange_theorem.c
│ │ ├── ./C/numerical_methods/lu_decompose.c
│ │ ├── ./C/numerical_methods/mean.c
│ │ ├── ./C/numerical_methods/median.c
│ │ ├── ./C/numerical_methods/newton_raphson_root.c
│ │ ├── ./C/numerical_methods/ode_forward_euler.c
│ │ ├── ./C/numerical_methods/ode_midpoint_euler.c
│ │ ├── ./C/numerical_methods/ode_semi_implicit_euler.c
│ │ ├── ./C/numerical_methods/qr_decompose.h
│ │ ├── ./C/numerical_methods/qr_decomposition.c
│ │ ├── ./C/numerical_methods/qr_eigen_values.c
│ │ ├── ./C/numerical_methods/realtime_stats.c
│ │ ├── ./C/numerical_methods/simpsons_1_3rd_rule.c
│ │ └── ./C/numerical_methods/variance.c
│ ├── ./C/project_euler
│ │ ├── ./C/project_euler/CMakeLists.txt
│ │ ├── ./C/project_euler/problem_1
│ │ │ ├── ./C/project_euler/problem_1/sol1.c
│ │ │ ├── ./C/project_euler/problem_1/sol2.c
│ │ │ ├── ./C/project_euler/problem_1/sol3.c
│ │ │ └── ./C/project_euler/problem_1/sol4.c
│ │ ├── ./C/project_euler/problem_10
│ │ │ ├── ./C/project_euler/problem_10/sol1.c
│ │ │ └── ./C/project_euler/problem_10/sol2.c
│ │ ├── ./C/project_euler/problem_12
│ │ │ └── ./C/project_euler/problem_12/sol1.c
│ │ ├── ./C/project_euler/problem_13
│ │ │ ├── ./C/project_euler/problem_13/num.txt
│ │ │ └── ./C/project_euler/problem_13/sol1.c
│ │ ├── ./C/project_euler/problem_14
│ │ │ └── ./C/project_euler/problem_14/sol1.c
│ │ ├── ./C/project_euler/problem_15
│ │ │ └── ./C/project_euler/problem_15/sol1.c
│ │ ├── ./C/project_euler/problem_16
│ │ │ └── ./C/project_euler/problem_16/sol1.c
│ │ ├── ./C/project_euler/problem_19
│ │ │ └── ./C/project_euler/problem_19/sol1.c
│ │ ├── ./C/project_euler/problem_2
│ │ │ └── ./C/project_euler/problem_2/so1.c
│ │ ├── ./C/project_euler/problem_20
│ │ │ └── ./C/project_euler/problem_20/sol1.c
│ │ ├── ./C/project_euler/problem_21
│ │ │ └── ./C/project_euler/problem_21/sol1.c
│ │ ├── ./C/project_euler/problem_22
│ │ │ ├── ./C/project_euler/problem_22/names.txt
│ │ │ └── ./C/project_euler/problem_22/sol1.c
│ │ ├── ./C/project_euler/problem_23
│ │ │ ├── ./C/project_euler/problem_23/sol1.c
│ │ │ └── ./C/project_euler/problem_23/sol2.c
│ │ ├── ./C/project_euler/problem_24
│ │ │ └── ./C/project_euler/problem_24/sol1
│ │ ├── ./C/project_euler/problem_25
│ │ │ └── ./C/project_euler/problem_25/sol1.c
│ │ ├── ./C/project_euler/problem_26
│ │ │ └── ./C/project_euler/problem_26/sol1.c
│ │ ├── ./C/project_euler/problem_3
│ │ │ ├── ./C/project_euler/problem_3/sol1.c
│ │ │ └── ./C/project_euler/problem_3/sol2.c
│ │ ├── ./C/project_euler/problem_4
│ │ │ └── ./C/project_euler/problem_4/sol.c
│ │ ├── ./C/project_euler/problem_401
│ │ │ └── ./C/project_euler/problem_401/sol1.c
│ │ ├── ./C/project_euler/problem_5
│ │ │ ├── ./C/project_euler/problem_5/sol1.c
│ │ │ ├── ./C/project_euler/problem_5/sol2.c
│ │ │ └── ./C/project_euler/problem_5/sol3.c
│ │ ├── ./C/project_euler/problem_6
│ │ │ └── ./C/project_euler/problem_6/sol.c
│ │ ├── ./C/project_euler/problem_7
│ │ │ ├── ./C/project_euler/problem_7/sol2.c
│ │ │ └── ./C/project_euler/problem_7/sol.c
│ │ ├── ./C/project_euler/problem_8
│ │ │ ├── ./C/project_euler/problem_8/digits.txt
│ │ │ ├── ./C/project_euler/problem_8/sol1.c
│ │ │ └── ./C/project_euler/problem_8/sol2.c
│ │ ├── ./C/project_euler/problem_9
│ │ │ ├── ./C/project_euler/problem_9/sol1.c
│ │ │ └── ./C/project_euler/problem_9/sol2.c
│ │ ├── ./C/project_euler/README.html
│ │ └── ./C/project_euler/README.md
│ ├── ./C/README.html
│ ├── ./C/README.md
│ ├── ./C/REVIEWER_CODE.html
│ ├── ./C/REVIEWER_CODE.md
│ ├── ./C/searching
│ │ ├── ./C/searching/binary_search.c
│ │ ├── ./C/searching/CMakeLists.txt
│ │ ├── ./C/searching/exponential_search.c
│ │ ├── ./C/searching/fibonacci_search.c
│ │ ├── ./C/searching/floyd_cycle_detection_algorithm.c
│ │ ├── ./C/searching/interpolation_search.c
│ │ ├── ./C/searching/jump_search.c
│ │ ├── ./C/searching/linear_search.c
│ │ ├── ./C/searching/modified_binary_search.c
│ │ ├── ./C/searching/other_binary_search.c
│ │ ├── ./C/searching/pattern_search
│ │ │ ├── ./C/searching/pattern_search/boyer_moore_search.c
│ │ │ ├── ./C/searching/pattern_search/CMakeLists.txt
│ │ │ ├── ./C/searching/pattern_search/naive_search.c
│ │ │ └── ./C/searching/pattern_search/rabin_karp_search.c
│ │ └── ./C/searching/ternary_search.c
│ └── ./C/sorting
│ ├── ./C/sorting/bead_sort.c
│ ├── ./C/sorting/binary_insertion_sort.c
│ ├── ./C/sorting/bogo_sort.c
│ ├── ./C/sorting/bubble_sort_2.c
│ ├── ./C/sorting/bubble_sort.c
│ ├── ./C/sorting/bubble_sort_recursion.c
│ ├── ./C/sorting/bucket_sort.c
│ ├── ./C/sorting/CMakeLists.txt
│ ├── ./C/sorting/cocktail_sort.c
│ ├── ./C/sorting/comb_sort.c
│ ├── ./C/sorting/counting_sort.c
│ ├── ./C/sorting/cycle_sort.c
│ ├── ./C/sorting/gnome_sort.c
│ ├── ./C/sorting/heap_sort_2.c
│ ├── ./C/sorting/heap_sort.c
│ ├── ./C/sorting/insertion_sort.c
│ ├── ./C/sorting/insertion_sort_recursive.c
│ ├── ./C/sorting/merge_sort.c
│ ├── ./C/sorting/merge_sort_nr.c
│ ├── ./C/sorting/multikey_quick_sort.c
│ ├── ./C/sorting/pancake_sort.c
│ ├── ./C/sorting/partition_sort.c
│ ├── ./C/sorting/pigeonhole_sort.c
│ ├── ./C/sorting/quick_sort.c
│ ├── ./C/sorting/radix_sort_2.c
│ ├── ./C/sorting/radix_sort.c
│ ├── ./C/sorting/random_quick_sort.c
│ ├── ./C/sorting/selection_sort.c
│ ├── ./C/sorting/selection_sort_recursive.c
│ ├── ./C/sorting/shaker_sort.c
│ ├── ./C/sorting/shell_sort2.c
│ ├── ./C/sorting/shell_sort.c
│ └── ./C/sorting/stooge_sort.c
├── ./Clojure
│ ├── ./Clojure/DIRECTORY.html
│ ├── ./Clojure/DIRECTORY.md
│ ├── ./Clojure/project.clj
│ ├── ./Clojure/README.html
│ ├── ./Clojure/README.md
│ ├── ./Clojure/src
│ │ └── ./Clojure/src/data_structures
│ │ └── ./Clojure/src/data_structures/lists
│ └── ./Clojure/test
│ └── ./Clojure/test/data_structures
│ └── ./Clojure/test/data_structures/lists
├── ./commands.html
├── ./commands.md
├── ./C-Plus-Plus
│ ├── ./C-Plus-Plus/backtracking
│ │ ├── ./C-Plus-Plus/backtracking/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/backtracking/graph_coloring.cpp
│ │ ├── ./C-Plus-Plus/backtracking/knight_tour.cpp
│ │ ├── ./C-Plus-Plus/backtracking/magic_sequence.cpp
│ │ ├── ./C-Plus-Plus/backtracking/minimax.cpp
│ │ ├── ./C-Plus-Plus/backtracking/nqueen_print_all_solutions.cpp
│ │ ├── ./C-Plus-Plus/backtracking/n_queens_all_solution_optimised.cpp
│ │ ├── ./C-Plus-Plus/backtracking/n_queens.cpp
│ │ ├── ./C-Plus-Plus/backtracking/rat_maze.cpp
│ │ ├── ./C-Plus-Plus/backtracking/subarray_sum.cpp
│ │ ├── ./C-Plus-Plus/backtracking/subset_sum.cpp
│ │ ├── ./C-Plus-Plus/backtracking/sudoku_solve.cpp
│ │ └── ./C-Plus-Plus/backtracking/wildcard_matching.cpp
│ ├── ./C-Plus-Plus/bit_manipulation
│ │ ├── ./C-Plus-Plus/bit_manipulation/count_of_set_bits.cpp
│ │ ├── ./C-Plus-Plus/bit_manipulation/count_of_trailing_ciphers_in_factorial_n.cpp
│ │ └── ./C-Plus-Plus/bit_manipulation/hamming_distance.cpp
│ ├── ./C-Plus-Plus/ciphers
│ │ ├── ./C-Plus-Plus/ciphers/base64_encoding.cpp
│ │ ├── ./C-Plus-Plus/ciphers/caesar_cipher.cpp
│ │ ├── ./C-Plus-Plus/ciphers/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/ciphers/elliptic_curve_key_exchange.cpp
│ │ ├── ./C-Plus-Plus/ciphers/hill_cipher.cpp
│ │ ├── ./C-Plus-Plus/ciphers/morse_code.cpp
│ │ ├── ./C-Plus-Plus/ciphers/uint128_t.hpp
│ │ ├── ./C-Plus-Plus/ciphers/uint256_t.hpp
│ │ ├── ./C-Plus-Plus/ciphers/vigenere_cipher.cpp
│ │ └── ./C-Plus-Plus/ciphers/xor_cipher.cpp
│ ├── ./C-Plus-Plus/CMakeLists.txt
│ ├── ./C-Plus-Plus/CodingGuidelines.html
│ ├── ./C-Plus-Plus/CodingGuidelines.md
│ ├── ./C-Plus-Plus/data_structures
│ │ ├── ./C-Plus-Plus/data_structures/avltree.cpp
│ │ ├── ./C-Plus-Plus/data_structures/binaryheap.cpp
│ │ ├── ./C-Plus-Plus/data_structures/binary_search_tree2.cpp
│ │ ├── ./C-Plus-Plus/data_structures/binary_search_tree.cpp
│ │ ├── ./C-Plus-Plus/data_structures/circular_queue_using_linked_list.cpp
│ │ ├── ./C-Plus-Plus/data_structures/cll
│ │ │ ├── ./C-Plus-Plus/data_structures/cll/cll.cpp
│ │ │ ├── ./C-Plus-Plus/data_structures/cll/cll.h
│ │ │ ├── ./C-Plus-Plus/data_structures/cll/CMakeLists.txt
│ │ │ └── ./C-Plus-Plus/data_structures/cll/main_cll.cpp
│ │ ├── ./C-Plus-Plus/data_structures/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/data_structures/disjoint_set.cpp
│ │ ├── ./C-Plus-Plus/data_structures/doubly_linked_list.cpp
│ │ ├── ./C-Plus-Plus/data_structures/linked_list.cpp
│ │ ├── ./C-Plus-Plus/data_structures/linkedlist_implentation_usingarray.cpp
│ │ ├── ./C-Plus-Plus/data_structures/list_array.cpp
│ │ ├── ./C-Plus-Plus/data_structures/morrisinorder.cpp
│ │ ├── ./C-Plus-Plus/data_structures/queue.h
│ │ ├── ./C-Plus-Plus/data_structures/queue_using_array2.cpp
│ │ ├── ./C-Plus-Plus/data_structures/queue_using_array.cpp
│ │ ├── ./C-Plus-Plus/data_structures/queue_using_linked_list.cpp
│ │ ├── ./C-Plus-Plus/data_structures/queue_using_linkedlist.cpp
│ │ ├── ./C-Plus-Plus/data_structures/queue_using_two_stacks.cpp
│ │ ├── ./C-Plus-Plus/data_structures/rb_tree.cpp
│ │ ├── ./C-Plus-Plus/data_structures/skip_list.cpp
│ │ ├── ./C-Plus-Plus/data_structures/sparse_table.cpp
│ │ ├── ./C-Plus-Plus/data_structures/stack.h
│ │ ├── ./C-Plus-Plus/data_structures/stack_using_array.cpp
│ │ ├── ./C-Plus-Plus/data_structures/stack_using_linked_list.cpp
│ │ ├── ./C-Plus-Plus/data_structures/student.txt
│ │ ├── ./C-Plus-Plus/data_structures/test_queue.cpp
│ │ ├── ./C-Plus-Plus/data_structures/test_stack.cpp
│ │ ├── ./C-Plus-Plus/data_structures/test_stack_students.cpp
│ │ ├── ./C-Plus-Plus/data_structures/tree_234.cpp
│ │ ├── ./C-Plus-Plus/data_structures/tree.cpp
│ │ ├── ./C-Plus-Plus/data_structures/trie_modern.cpp
│ │ ├── ./C-Plus-Plus/data_structures/trie_tree.cpp
│ │ └── ./C-Plus-Plus/data_structures/trie_using_hashmap.cpp
│ ├── ./C-Plus-Plus/DIRECTORY.html
│ ├── ./C-Plus-Plus/DIRECTORY.md
│ ├── ./C-Plus-Plus/divide_and_conquer
│ │ └── ./C-Plus-Plus/divide_and_conquer/karatsuba_algorithm_for_fast_multiplication.cpp
│ ├── ./C-Plus-Plus/doc
│ ├── ./C-Plus-Plus/dynamic_programming
│ │ ├── ./C-Plus-Plus/dynamic_programming/0_1_knapsack.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/abbreviation.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/armstrong_number.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/bellman_ford.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/catalan_numbers.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/coin_change.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/coin_change_topdown.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/cut_rod.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/edit_distance.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/egg_dropping_puzzle.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/fibonacci_bottom_up.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/floyd_warshall.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/house_robber.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/kadane2.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/kadane.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/longest_common_string.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/longest_common_subsequence.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/longest_increasing_subsequence.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/longest_increasing_subsequence_(nlogn).cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/longest_palindromic_subsequence.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/matrix_chain_multiplication.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/minimum_edit_distance.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/palindrome_partitioning.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/searching_of_element_in_dynamic_array.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/shortest_common_supersequence.cpp
│ │ ├── ./C-Plus-Plus/dynamic_programming/tree_height.cpp
│ │ └── ./C-Plus-Plus/dynamic_programming/word_break.cpp
│ ├── ./C-Plus-Plus/geometry
│ │ ├── ./C-Plus-Plus/geometry/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/geometry/jarvis_algorithm.cpp
│ │ └── ./C-Plus-Plus/geometry/line_segment_intersection.cpp
│ ├── ./C-Plus-Plus/graph
│ │ ├── ./C-Plus-Plus/graph/bidirectional_dijkstra.cpp
│ │ ├── ./C-Plus-Plus/graph/breadth_first_search.cpp
│ │ ├── ./C-Plus-Plus/graph/bridge_finding_with_tarjan_algorithm.cpp
│ │ ├── ./C-Plus-Plus/graph/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/graph/connected_components.cpp
│ │ ├── ./C-Plus-Plus/graph/connected_components_with_dsu.cpp
│ │ ├── ./C-Plus-Plus/graph/cycle_check_directed_graph.cpp
│ │ ├── ./C-Plus-Plus/graph/depth_first_search.cpp
│ │ ├── ./C-Plus-Plus/graph/depth_first_search_with_stack.cpp
│ │ ├── ./C-Plus-Plus/graph/dijkstra.cpp
│ │ ├── ./C-Plus-Plus/graph/hamiltons_cycle.cpp
│ │ ├── ./C-Plus-Plus/graph/hopcroft_karp.cpp
│ │ ├── ./C-Plus-Plus/graph/is_graph_bipartite.cpp
│ │ ├── ./C-Plus-Plus/graph/kosaraju.cpp
│ │ ├── ./C-Plus-Plus/graph/kruskal.cpp
│ │ ├── ./C-Plus-Plus/graph/lowest_common_ancestor.cpp
│ │ ├── ./C-Plus-Plus/graph/max_flow_with_ford_fulkerson_and_edmond_karp_algo.cpp
│ │ ├── ./C-Plus-Plus/graph/prim.cpp
│ │ ├── ./C-Plus-Plus/graph/topological_sort_by_kahns_algo.cpp
│ │ └── ./C-Plus-Plus/graph/topological_sort.cpp
│ ├── ./C-Plus-Plus/graphics
│ │ ├── ./C-Plus-Plus/graphics/CMakeLists.txt
│ │ └── ./C-Plus-Plus/graphics/spirograph.cpp
│ ├── ./C-Plus-Plus/greedy_algorithms
│ │ ├── ./C-Plus-Plus/greedy_algorithms/dijkstra.cpp
│ │ ├── ./C-Plus-Plus/greedy_algorithms/huffman.cpp
│ │ ├── ./C-Plus-Plus/greedy_algorithms/jumpgame.cpp
│ │ ├── ./C-Plus-Plus/greedy_algorithms/knapsack.cpp
│ │ ├── ./C-Plus-Plus/greedy_algorithms/kruskals_minimum_spanning_tree.cpp
│ │ └── ./C-Plus-Plus/greedy_algorithms/prims_minimum_spanning_tree.cpp
│ ├── ./C-Plus-Plus/hashing
│ │ ├── ./C-Plus-Plus/hashing/chaining.cpp
│ │ ├── ./C-Plus-Plus/hashing/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/hashing/double_hash_hash_table.cpp
│ │ ├── ./C-Plus-Plus/hashing/linear_probing_hash_table.cpp
│ │ └── ./C-Plus-Plus/hashing/quadratic_probing_hash_table.cpp
│ ├── ./C-Plus-Plus/linear_algebra
│ │ └── ./C-Plus-Plus/linear_algebra/gram_schmidt.cpp
│ ├── ./C-Plus-Plus/machine_learning
│ │ ├── ./C-Plus-Plus/machine_learning/adaline_learning.cpp
│ │ ├── ./C-Plus-Plus/machine_learning/a_star_search.cpp
│ │ ├── ./C-Plus-Plus/machine_learning/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/machine_learning/iris.csv
│ │ ├── ./C-Plus-Plus/machine_learning/kohonen_som_topology.cpp
│ │ ├── ./C-Plus-Plus/machine_learning/kohonen_som_trace.cpp
│ │ ├── ./C-Plus-Plus/machine_learning/neural_network.cpp
│ │ ├── ./C-Plus-Plus/machine_learning/ordinary_least_squares_regressor.cpp
│ │ └── ./C-Plus-Plus/machine_learning/vector_ops.hpp
│ ├── ./C-Plus-Plus/math
│ │ ├── ./C-Plus-Plus/math/armstrong_number.cpp
│ │ ├── ./C-Plus-Plus/math/binary_exponent.cpp
│ │ ├── ./C-Plus-Plus/math/binomial_calculate.cpp
│ │ ├── ./C-Plus-Plus/math/check_amicable_pair.cpp
│ │ ├── ./C-Plus-Plus/math/check_factorial.cpp
│ │ ├── ./C-Plus-Plus/math/check_prime.cpp
│ │ ├── ./C-Plus-Plus/math/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/math/complex_numbers.cpp
│ │ ├── ./C-Plus-Plus/math/double_factorial.cpp
│ │ ├── ./C-Plus-Plus/math/eulers_totient_function.cpp
│ │ ├── ./C-Plus-Plus/math/extended_euclid_algorithm.cpp
│ │ ├── ./C-Plus-Plus/math/factorial.cpp
│ │ ├── ./C-Plus-Plus/math/fast_power.cpp
│ │ ├── ./C-Plus-Plus/math/fibonacci.cpp
│ │ ├── ./C-Plus-Plus/math/fibonacci_fast.cpp
│ │ ├── ./C-Plus-Plus/math/fibonacci_large.cpp
│ │ ├── ./C-Plus-Plus/math/fibonacci_matrix_exponentiation.cpp
│ │ ├── ./C-Plus-Plus/math/fibonacci_sum.cpp
│ │ ├── ./C-Plus-Plus/math/gcd_iterative_euclidean.cpp
│ │ ├── ./C-Plus-Plus/math/gcd_of_n_numbers.cpp
│ │ ├── ./C-Plus-Plus/math/gcd_recursive_euclidean.cpp
│ │ ├── ./C-Plus-Plus/math/integral_approximation.cpp
│ │ ├── ./C-Plus-Plus/math/large_factorial.cpp
│ │ ├── ./C-Plus-Plus/math/large_number.h
│ │ ├── ./C-Plus-Plus/math/largest_power.cpp
│ │ ├── ./C-Plus-Plus/math/lcm_sum.cpp
│ │ ├── ./C-Plus-Plus/math/least_common_multiple.cpp
│ │ ├── ./C-Plus-Plus/math/linear_recurrence_matrix.cpp
│ │ ├── ./C-Plus-Plus/math/magic_number.cpp
│ │ ├── ./C-Plus-Plus/math/miller_rabin.cpp
│ │ ├── ./C-Plus-Plus/math/modular_division.cpp
│ │ ├── ./C-Plus-Plus/math/modular_exponentiation.cpp
│ │ ├── ./C-Plus-Plus/math/modular_inverse_fermat_little_theorem.cpp
│ │ ├── ./C-Plus-Plus/math/n_bonacci.cpp
│ │ ├── ./C-Plus-Plus/math/n_choose_r.cpp
│ │ ├── ./C-Plus-Plus/math/ncr_modulo_p.cpp
│ │ ├── ./C-Plus-Plus/math/number_of_positive_divisors.cpp
│ │ ├── ./C-Plus-Plus/math/power_for_huge_numbers.cpp
│ │ ├── ./C-Plus-Plus/math/power_of_two.cpp
│ │ ├── ./C-Plus-Plus/math/prime_factorization.cpp
│ │ ├── ./C-Plus-Plus/math/prime_numbers.cpp
│ │ ├── ./C-Plus-Plus/math/primes_up_to_billion.cpp
│ │ ├── ./C-Plus-Plus/math/README.html
│ │ ├── ./C-Plus-Plus/math/README.md
│ │ ├── ./C-Plus-Plus/math/realtime_stats.cpp
│ │ ├── ./C-Plus-Plus/math/sieve_of_eratosthenes.cpp
│ │ ├── ./C-Plus-Plus/math/sqrt_double.cpp
│ │ ├── ./C-Plus-Plus/math/string_fibonacci.cpp
│ │ ├── ./C-Plus-Plus/math/sum_of_binomial_coefficient.cpp
│ │ ├── ./C-Plus-Plus/math/sum_of_digits.cpp
│ │ └── ./C-Plus-Plus/math/vector_cross_product.cpp
│ ├── ./C-Plus-Plus/numerical_methods
│ │ ├── ./C-Plus-Plus/numerical_methods/bisection_method.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/brent_method_extrema.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/numerical_methods/durand_kerner_roots.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/false_position.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/gaussian_elimination.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/golden_search_extrema.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/lu_decompose.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/lu_decomposition.h
│ │ ├── ./C-Plus-Plus/numerical_methods/newton_raphson_method.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/ode_forward_euler.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/ode_midpoint_euler.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/ode_semi_implicit_euler.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/qr_decompose.h
│ │ ├── ./C-Plus-Plus/numerical_methods/qr_decomposition.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/qr_eigen_values.cpp
│ │ ├── ./C-Plus-Plus/numerical_methods/rungekutta.cpp
│ │ └── ./C-Plus-Plus/numerical_methods/successive_approximation.cpp
│ ├── ./C-Plus-Plus/operations_on_datastructures
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/array_left_rotation.cpp
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/array_right_rotation.cpp
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/circular_linked_list.cpp
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/circular_queue_using_array.cpp
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/get_size_of_linked_list.cpp
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/inorder_successor_of_bst.cpp
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/intersection_of_2_arrays.cpp
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/reverse_a_linked_list_using_recusion.cpp
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/selectionsortlinkedlist.cpp
│ │ ├── ./C-Plus-Plus/operations_on_datastructures/trie_multiple_search.cpp
│ │ └── ./C-Plus-Plus/operations_on_datastructures/union_of_2_arrays.cpp
│ ├── ./C-Plus-Plus/others
│ │ ├── ./C-Plus-Plus/others/buzz_number.cpp
│ │ ├── ./C-Plus-Plus/others/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/others/decimal_to_binary.cpp
│ │ ├── ./C-Plus-Plus/others/decimal_to_hexadecimal.cpp
│ │ ├── ./C-Plus-Plus/others/decimal_to_roman_numeral.cpp
│ │ ├── ./C-Plus-Plus/others/fast_integer_input.cpp
│ │ ├── ./C-Plus-Plus/others/happy_number.cpp
│ │ ├── ./C-Plus-Plus/others/iterative_tree_traversals.cpp
│ │ ├── ./C-Plus-Plus/others/matrix_exponentiation.cpp
│ │ ├── ./C-Plus-Plus/others/palindrome_of_number.cpp
│ │ ├── ./C-Plus-Plus/others/paranthesis_matching.cpp
│ │ ├── ./C-Plus-Plus/others/pascal_triangle.cpp
│ │ ├── ./C-Plus-Plus/others/postfix_evaluation.cpp
│ │ ├── ./C-Plus-Plus/others/primality_test.cpp
│ │ ├── ./C-Plus-Plus/others/smallest_circle.cpp
│ │ ├── ./C-Plus-Plus/others/sparse_matrix.cpp
│ │ ├── ./C-Plus-Plus/others/spiral_print.cpp
│ │ ├── ./C-Plus-Plus/others/stairs_pattern.cpp
│ │ ├── ./C-Plus-Plus/others/tower_of_hanoi.cpp
│ │ └── ./C-Plus-Plus/others/vector_important_functions.cpp
│ ├── ./C-Plus-Plus/probability
│ │ ├── ./C-Plus-Plus/probability/addition_rule.cpp
│ │ ├── ./C-Plus-Plus/probability/bayes_theorem.cpp
│ │ ├── ./C-Plus-Plus/probability/binomial_dist.cpp
│ │ ├── ./C-Plus-Plus/probability/CMakeLists.txt
│ │ └── ./C-Plus-Plus/probability/poisson_dist.cpp
│ ├── ./C-Plus-Plus/range_queries
│ │ ├── ./C-Plus-Plus/range_queries/fenwick_tree.cpp
│ │ ├── ./C-Plus-Plus/range_queries/heavy_light_decomposition.cpp
│ │ ├── ./C-Plus-Plus/range_queries/mo.cpp
│ │ ├── ./C-Plus-Plus/range_queries/persistent_seg_tree_lazy_prop.cpp
│ │ ├── ./C-Plus-Plus/range_queries/segtree.cpp
│ │ └── ./C-Plus-Plus/range_queries/sparse_table.cpp
│ ├── ./C-Plus-Plus/README.html
│ ├── ./C-Plus-Plus/README.md
│ ├── ./C-Plus-Plus/REVIEWER_CODE.html
│ ├── ./C-Plus-Plus/REVIEWER_CODE.md
│ ├── ./C-Plus-Plus/search
│ │ ├── ./C-Plus-Plus/search/binary_search.cpp
│ │ ├── ./C-Plus-Plus/search/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/search/exponential_search.cpp
│ │ ├── ./C-Plus-Plus/search/fibonacci_search.cpp
│ │ ├── ./C-Plus-Plus/search/floyd_cycle_detection_algo.cpp
│ │ ├── ./C-Plus-Plus/search/hash_search.cpp
│ │ ├── ./C-Plus-Plus/search/interpolation_search2.cpp
│ │ ├── ./C-Plus-Plus/search/interpolation_search.cpp
│ │ ├── ./C-Plus-Plus/search/jump_search.cpp
│ │ ├── ./C-Plus-Plus/search/linear_search.cpp
│ │ ├── ./C-Plus-Plus/search/median_search.cpp
│ │ ├── ./C-Plus-Plus/search/saddleback_search.cpp
│ │ ├── ./C-Plus-Plus/search/sublist_search.cpp
│ │ ├── ./C-Plus-Plus/search/ternary_search.cpp
│ │ └── ./C-Plus-Plus/search/text_search.cpp
│ ├── ./C-Plus-Plus/sorting
│ │ ├── ./C-Plus-Plus/sorting/bead_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/bitonic_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/bogo_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/bubble_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/bucket_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/CMakeLists.txt
│ │ ├── ./C-Plus-Plus/sorting/cocktail_selection_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/comb_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/counting_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/counting_sort_string.cpp
│ │ ├── ./C-Plus-Plus/sorting/count_inversions.cpp
│ │ ├── ./C-Plus-Plus/sorting/cycle_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/gnome_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/heap_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/insertion_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/library_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/merge_insertion_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/merge_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/non_recursive_merge_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/numeric_string_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/odd_even_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/pancake_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/pigeonhole_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/quick_sort_3.cpp
│ │ ├── ./C-Plus-Plus/sorting/quick_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/radix_sort2.cpp
│ │ ├── ./C-Plus-Plus/sorting/radix_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/random_pivot_quick_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/recursive_bubble_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/selection_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/shell_sort2.cpp
│ │ ├── ./C-Plus-Plus/sorting/shell_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/slow_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/strand_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/swap_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/tim_sort.cpp
│ │ ├── ./C-Plus-Plus/sorting/wave_sort.cpp
│ │ └── ./C-Plus-Plus/sorting/wiggle_sort.cpp
│ └── ./C-Plus-Plus/strings
│ ├── ./C-Plus-Plus/strings/brute_force_string_searching.cpp
│ ├── ./C-Plus-Plus/strings/CMakeLists.txt
│ ├── ./C-Plus-Plus/strings/horspool.cpp
│ ├── ./C-Plus-Plus/strings/knuth_morris_pratt.cpp
│ └── ./C-Plus-Plus/strings/rabin_karp.cpp
├── ./C-Sharp
│ ├── ./C-Sharp/Algorithms
│ │ ├── ./C-Sharp/Algorithms/Algorithms.csproj
│ │ ├── ./C-Sharp/Algorithms/DataCompression
│ │ │ ├── ./C-Sharp/Algorithms/DataCompression/BurrowsWheelerTransform.cs
│ │ │ ├── ./C-Sharp/Algorithms/DataCompression/HuffmanCompressor.cs
│ │ │ ├── ./C-Sharp/Algorithms/DataCompression/ShannonFanoCompressor.cs
│ │ │ └── ./C-Sharp/Algorithms/DataCompression/Translator.cs
│ │ ├── ./C-Sharp/Algorithms/Encoders
│ │ │ ├── ./C-Sharp/Algorithms/Encoders/CaesarEncoder.cs
│ │ │ ├── ./C-Sharp/Algorithms/Encoders/HillEncoder.cs
│ │ │ ├── ./C-Sharp/Algorithms/Encoders/IEncoder.cs
│ │ │ ├── ./C-Sharp/Algorithms/Encoders/NysiisEncoder.cs
│ │ │ ├── ./C-Sharp/Algorithms/Encoders/SoundexEncoder.cs
│ │ │ └── ./C-Sharp/Algorithms/Encoders/VigenereEncoder.cs
│ │ ├── ./C-Sharp/Algorithms/Knapsack
│ │ │ ├── ./C-Sharp/Algorithms/Knapsack/BranchAndBoundKnapsackSolver.cs
│ │ │ ├── ./C-Sharp/Algorithms/Knapsack/BranchAndBoundNode.cs
│ │ │ ├── ./C-Sharp/Algorithms/Knapsack/DynamicProgrammingKnapsackSolver.cs
│ │ │ ├── ./C-Sharp/Algorithms/Knapsack/IHeuristicKnapsackSolver.cs
│ │ │ ├── ./C-Sharp/Algorithms/Knapsack/IKnapsackSolver.cs
│ │ │ └── ./C-Sharp/Algorithms/Knapsack/NaiveKnapsackSolver.cs
│ │ ├── ./C-Sharp/Algorithms/LinearAlgebra
│ │ │ └── ./C-Sharp/Algorithms/LinearAlgebra/Eigenvalue
│ │ ├── ./C-Sharp/Algorithms/Numeric
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/AliquotSumCalculator.cs
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/BinomialCoefficient.cs
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/Decomposition
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/EulerMethod.cs
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/Factorial.cs
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/Factorization
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/GaussJordanElimination.cs
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/GreatestCommonDivisor
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/NarcissisticNumberChecker.cs
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/PerfectNumberChecker.cs
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/PerfectSquareChecker.cs
│ │ │ ├── ./C-Sharp/Algorithms/Numeric/Pseudoinverse
│ │ │ └── ./C-Sharp/Algorithms/Numeric/Series
│ │ ├── ./C-Sharp/Algorithms/Other
│ │ │ ├── ./C-Sharp/Algorithms/Other/FermatPrimeChecker.cs
│ │ │ ├── ./C-Sharp/Algorithms/Other/FloodFill.cs
│ │ │ ├── ./C-Sharp/Algorithms/Other/GeoLocation.cs
│ │ │ ├── ./C-Sharp/Algorithms/Other/Int2Binary.cs
│ │ │ ├── ./C-Sharp/Algorithms/Other/KochSnowflake.cs
│ │ │ ├── ./C-Sharp/Algorithms/Other/Luhn.cs
│ │ │ ├── ./C-Sharp/Algorithms/Other/Mandelbrot.cs
│ │ │ ├── ./C-Sharp/Algorithms/Other/RGBHSVConversion.cs
│ │ │ └── ./C-Sharp/Algorithms/Other/SieveOfEratosthenes.cs
│ │ ├── ./C-Sharp/Algorithms/Problems
│ │ │ ├── ./C-Sharp/Algorithms/Problems/NQueens
│ │ │ └── ./C-Sharp/Algorithms/Problems/StableMarriage
│ │ ├── ./C-Sharp/Algorithms/Search
│ │ │ ├── ./C-Sharp/Algorithms/Search/AStar
│ │ │ ├── ./C-Sharp/Algorithms/Search/BinarySearcher.cs
│ │ │ ├── ./C-Sharp/Algorithms/Search/FastSearcher.cs
│ │ │ ├── ./C-Sharp/Algorithms/Search/JumpSearcher.cs
│ │ │ ├── ./C-Sharp/Algorithms/Search/LinearSearcher.cs
│ │ │ └── ./C-Sharp/Algorithms/Search/RecursiveBinarySearcher.cs
│ │ ├── ./C-Sharp/Algorithms/Sequences
│ │ │ ├── ./C-Sharp/Algorithms/Sequences/BinomialSequence.cs
│ │ │ ├── ./C-Sharp/Algorithms/Sequences/FactorialSequence.cs
│ │ │ ├── ./C-Sharp/Algorithms/Sequences/FibonacciSequence.cs
│ │ │ ├── ./C-Sharp/Algorithms/Sequences/ISequence.cs
│ │ │ ├── ./C-Sharp/Algorithms/Sequences/NaturalSequence.cs
│ │ │ └── ./C-Sharp/Algorithms/Sequences/PrimesSequence.cs
│ │ ├── ./C-Sharp/Algorithms/Sorters
│ │ │ ├── ./C-Sharp/Algorithms/Sorters/Comparison
│ │ │ ├── ./C-Sharp/Algorithms/Sorters/External
│ │ │ ├── ./C-Sharp/Algorithms/Sorters/Integer
│ │ │ └── ./C-Sharp/Algorithms/Sorters/String
│ │ └── ./C-Sharp/Algorithms/Strings
│ │ ├── ./C-Sharp/Algorithms/Strings/BoyerMoore.cs
│ │ ├── ./C-Sharp/Algorithms/Strings/GeneralStringAlgorithms.cs
│ │ ├── ./C-Sharp/Algorithms/Strings/KnuthMorrisPrattSearcher.cs
│ │ ├── ./C-Sharp/Algorithms/Strings/NaiveStringSearch.cs
│ │ ├── ./C-Sharp/Algorithms/Strings/palindrome.cs
│ │ └── ./C-Sharp/Algorithms/Strings/RabinKarp.cs
│ ├── ./C-Sharp/Algorithms.Tests
│ │ ├── ./C-Sharp/Algorithms.Tests/Algorithms.Tests.csproj
│ │ ├── ./C-Sharp/Algorithms.Tests/AssemblyInfo.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Compressors
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Compressors/BurrowsWheelerTransformTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Compressors/HuffmanCompressorTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Compressors/ShannonFanoCompressorTests.cs
│ │ │ └── ./C-Sharp/Algorithms.Tests/Compressors/TranslatorTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Encoders
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Encoders/CaesarEncoderTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Encoders/HillEnconderTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Encoders/NysiisEncoderTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Encoders/SoundexEncoderTest.cs
│ │ │ └── ./C-Sharp/Algorithms.Tests/Encoders/VigenereEncoderTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Helpers
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Helpers/IntComparer.cs
│ │ │ └── ./C-Sharp/Algorithms.Tests/Helpers/RandomHelper.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Knapsack
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Knapsack/BranchAndBoundKnapsackSolverTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Knapsack/DynamicProgrammingKnapsackSolverTests.cs
│ │ │ └── ./C-Sharp/Algorithms.Tests/Knapsack/NaiveKnapsackSolverTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/LinearAlgebra
│ │ │ └── ./C-Sharp/Algorithms.Tests/LinearAlgebra/Eigenvalue
│ │ ├── ./C-Sharp/Algorithms.Tests/Numeric
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/AliquotSumCalculatorTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/BinomialCoefficientTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/Decomposition
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/EulerMethodTest.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/FactorialTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/Factorization
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/GaussJordanEliminationTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/GreatestCommonDivisor
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/NarcissisticNumberTest.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/PerfectNumberTest.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Numeric/PerfectSquareTest.cs
│ │ │ └── ./C-Sharp/Algorithms.Tests/Numeric/PseudoInverse
│ │ ├── ./C-Sharp/Algorithms.Tests/Other
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Other/FermatPrimeCheckerTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Other/FloodFillTest.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Other/GeoLocationTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Other/Int2BinaryTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Other/KochSnowflakeTest.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Other/LuhnTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Other/MandelbrotTest.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Other/RGBHSVConversionTest.cs
│ │ │ └── ./C-Sharp/Algorithms.Tests/Other/SieveOfEratosthenesTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Problems
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Problems/NQueens
│ │ │ └── ./C-Sharp/Algorithms.Tests/Problems/StableMarriage
│ │ ├── ./C-Sharp/Algorithms.Tests/Search
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Search/BinarySearcherTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Search/FastSearcherTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Search/Helper.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Search/JumpSearcherTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Search/LinearSearcherTests.cs
│ │ │ └── ./C-Sharp/Algorithms.Tests/Search/RecursiveBinarySearcherTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Sequences
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Sequences/BinomialSequenceTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Sequences/FactorialSequenceTest.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Sequences/FibonacciSequenceTests.cs
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Sequences/NaturalSequenceTests.cs
│ │ │ └── ./C-Sharp/Algorithms.Tests/Sequences/PrimesSequenceTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Sorters
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Sorters/Comparison
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Sorters/External
│ │ │ ├── ./C-Sharp/Algorithms.Tests/Sorters/Integer
│ │ │ └── ./C-Sharp/Algorithms.Tests/Sorters/String
│ │ └── ./C-Sharp/Algorithms.Tests/Strings
│ │ ├── ./C-Sharp/Algorithms.Tests/Strings/BoyerMoreTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Strings/GeneralStringAlgorithmsTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Strings/KnuthMorrisPrattSearcherTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Strings/NaiveStringSearchTests.cs
│ │ ├── ./C-Sharp/Algorithms.Tests/Strings/PalindromeTests.cs
│ │ └── ./C-Sharp/Algorithms.Tests/Strings/RabinKarpTests.cs
│ ├── ./C-Sharp/C-Sharp.sln
│ ├── ./C-Sharp/DataStructures
│ │ ├── ./C-Sharp/DataStructures/AATree
│ │ │ ├── ./C-Sharp/DataStructures/AATree/AATree.cs
│ │ │ └── ./C-Sharp/DataStructures/AATree/AATreeNode.cs
│ │ ├── ./C-Sharp/DataStructures/BinarySearchTree
│ │ │ ├── ./C-Sharp/DataStructures/BinarySearchTree/BinarySearchTree.cs
│ │ │ └── ./C-Sharp/DataStructures/BinarySearchTree/BinarySearchTreeNode.cs
│ │ ├── ./C-Sharp/DataStructures/BitArray.cs
│ │ ├── ./C-Sharp/DataStructures/DataStructures.csproj
│ │ ├── ./C-Sharp/DataStructures/Heap
│ │ │ ├── ./C-Sharp/DataStructures/Heap/BinaryHeap.cs
│ │ │ ├── ./C-Sharp/DataStructures/Heap/FibonacciHeap
│ │ │ └── ./C-Sharp/DataStructures/Heap/MinMaxHeap.cs
│ │ ├── ./C-Sharp/DataStructures/LinkedList
│ │ │ ├── ./C-Sharp/DataStructures/LinkedList/DoublyLinkedList
│ │ │ └── ./C-Sharp/DataStructures/LinkedList/SinglyLinkedList
│ │ ├── ./C-Sharp/DataStructures/Queue
│ │ │ ├── ./C-Sharp/DataStructures/Queue/ArrayBasedQueue.cs
│ │ │ ├── ./C-Sharp/DataStructures/Queue/ListBasedQueue.cs
│ │ │ └── ./C-Sharp/DataStructures/Queue/StackBasedQueue.cs
│ │ ├── ./C-Sharp/DataStructures/SegmentTrees
│ │ │ ├── ./C-Sharp/DataStructures/SegmentTrees/SegmentTreeApply.cs
│ │ │ ├── ./C-Sharp/DataStructures/SegmentTrees/SegmentTree.cs
│ │ │ └── ./C-Sharp/DataStructures/SegmentTrees/SegmentTreeUpdate.cs
│ │ ├── ./C-Sharp/DataStructures/Stack
│ │ │ ├── ./C-Sharp/DataStructures/Stack/ArrayBasedStack.cs
│ │ │ └── ./C-Sharp/DataStructures/Stack/ListBasedStack.cs
│ │ └── ./C-Sharp/DataStructures/Timeline.cs
│ ├── ./C-Sharp/DataStructures.Tests
│ │ ├── ./C-Sharp/DataStructures.Tests/AATreeTests.cs
│ │ ├── ./C-Sharp/DataStructures.Tests/BinarySearchTreeTests.cs
│ │ ├── ./C-Sharp/DataStructures.Tests/BitArrayTests.cs
│ │ ├── ./C-Sharp/DataStructures.Tests/DataStructures.Tests.csproj
│ │ ├── ./C-Sharp/DataStructures.Tests/Heap
│ │ │ ├── ./C-Sharp/DataStructures.Tests/Heap/BinaryHeapTests.cs
│ │ │ ├── ./C-Sharp/DataStructures.Tests/Heap/FibonacciHeaps
│ │ │ └── ./C-Sharp/DataStructures.Tests/Heap/MinMaxHeapTests.cs
│ │ ├── ./C-Sharp/DataStructures.Tests/LinkedList
│ │ │ ├── ./C-Sharp/DataStructures.Tests/LinkedList/DoublyLinkedListTests.cs
│ │ │ └── ./C-Sharp/DataStructures.Tests/LinkedList/LinkedListTests.cs
│ │ ├── ./C-Sharp/DataStructures.Tests/Queue
│ │ │ ├── ./C-Sharp/DataStructures.Tests/Queue/ArrayBasedQueueTests.cs
│ │ │ ├── ./C-Sharp/DataStructures.Tests/Queue/ListBasedQueueTests.cs
│ │ │ └── ./C-Sharp/DataStructures.Tests/Queue/StackBasedQueueTests.cs
│ │ ├── ./C-Sharp/DataStructures.Tests/SegmentTrees
│ │ │ ├── ./C-Sharp/DataStructures.Tests/SegmentTrees/SegmentTreeApplyTests.cs
│ │ │ ├── ./C-Sharp/DataStructures.Tests/SegmentTrees/SegmentTreeTests.cs
│ │ │ └── ./C-Sharp/DataStructures.Tests/SegmentTrees/SegmentTreeUpdateTest.cs
│ │ ├── ./C-Sharp/DataStructures.Tests/Stack
│ │ │ ├── ./C-Sharp/DataStructures.Tests/Stack/ArrayBasedStackTests.cs
│ │ │ └── ./C-Sharp/DataStructures.Tests/Stack/ListBasedStackTests.cs
│ │ └── ./C-Sharp/DataStructures.Tests/TimelineTests.cs
│ ├── ./C-Sharp/DIRECTORY.html
│ ├── ./C-Sharp/DIRECTORY.md
│ ├── ./C-Sharp/README.html
│ ├── ./C-Sharp/README.md
│ ├── ./C-Sharp/stylecop.json
│ ├── ./C-Sharp/stylecop.ruleset
│ ├── ./C-Sharp/Utilities
│ │ ├── ./C-Sharp/Utilities/Exceptions
│ │ │ └── ./C-Sharp/Utilities/Exceptions/ItemNotFoundException.cs
│ │ ├── ./C-Sharp/Utilities/Extensions
│ │ │ ├── ./C-Sharp/Utilities/Extensions/DictionaryExtensions.cs
│ │ │ ├── ./C-Sharp/Utilities/Extensions/MatrixExtensions.cs
│ │ │ ├── ./C-Sharp/Utilities/Extensions/RandomExtensions.cs
│ │ │ └── ./C-Sharp/Utilities/Extensions/VectorExtensions.cs
│ │ └── ./C-Sharp/Utilities/Utilities.csproj
│ └── ./C-Sharp/Utilities.Tests
│ ├── ./C-Sharp/Utilities.Tests/Extensions
│ │ └── ./C-Sharp/Utilities.Tests/Extensions/MatrixExtensionsTests.cs
│ └── ./C-Sharp/Utilities.Tests/Utilities.Tests.csproj
├── ./Dart
│ ├── ./Dart/analysis_options.yaml
│ ├── ./Dart/array
│ │ └── ./Dart/array/validate_subsequence.dart
│ ├── ./Dart/backtracking
│ │ └── ./Dart/backtracking/open_knight_tour.dart
│ ├── ./Dart/conversions
│ │ ├── ./Dart/conversions/binary_to_decimal.dart
│ │ ├── ./Dart/conversions/binary_to_hexadecimal.dart
│ │ ├── ./Dart/conversions/binary_to_octal.dart
│ │ ├── ./Dart/conversions/Decimal_To_Any.dart
│ │ ├── ./Dart/conversions/Decimal_To_Binary.dart
│ │ ├── ./Dart/conversions/Decimal_to_Hexadecimal.dart
│ │ ├── ./Dart/conversions/Decimal_to_Octal.dart
│ │ ├── ./Dart/conversions/hexadecimal_to_binary.dart
│ │ ├── ./Dart/conversions/hexadecimal_to_decimal.dart
│ │ ├── ./Dart/conversions/hexadecimal_to_octal.dart
│ │ ├── ./Dart/conversions/Integer_To_Roman.dart
│ │ ├── ./Dart/conversions/octal_to_binary.dart
│ │ ├── ./Dart/conversions/octal_to_decimal.dart
│ │ ├── ./Dart/conversions/octal_to_hexadecimal.dart
│ │ └── ./Dart/conversions/roman_to_integer.dart
│ ├── ./Dart/dart_test.yaml
│ ├── ./Dart/data_structures
│ │ ├── ./Dart/data_structures/binary_tree
│ │ │ ├── ./Dart/data_structures/binary_tree/basic_binary_tree.dart
│ │ │ └── ./Dart/data_structures/binary_tree/binary_tree_traversal.dart
│ │ ├── ./Dart/data_structures/HashMap
│ │ │ └── ./Dart/data_structures/HashMap/Hashing.dart
│ │ ├── ./Dart/data_structures/Heap
│ │ │ └── ./Dart/data_structures/Heap/Binary_Heap
│ │ ├── ./Dart/data_structures/linked_list
│ │ │ ├── ./Dart/data_structures/linked_list/cycle_in_linked_list.dart
│ │ │ └── ./Dart/data_structures/linked_list/linked_list.dart
│ │ ├── ./Dart/data_structures/quad_tree
│ │ │ └── ./Dart/data_structures/quad_tree/quad_tree.dart
│ │ ├── ./Dart/data_structures/Queue
│ │ │ ├── ./Dart/data_structures/Queue/Circular_Queue.dart
│ │ │ ├── ./Dart/data_structures/Queue/List_Queue.dart
│ │ │ └── ./Dart/data_structures/Queue/Priority_Queue.dart
│ │ └── ./Dart/data_structures/Stack
│ │ ├── ./Dart/data_structures/Stack/Array_Stack.dart
│ │ ├── ./Dart/data_structures/Stack/balanced_brackets.dart
│ │ └── ./Dart/data_structures/Stack/Linked_List_Stack.dart
│ ├── ./Dart/DIRECTORY.html
│ ├── ./Dart/DIRECTORY.md
│ ├── ./Dart/dynamic_programming
│ │ ├── ./Dart/dynamic_programming/01knapsack_recursive.dart
│ │ ├── ./Dart/dynamic_programming/coin_change.dart
│ │ ├── ./Dart/dynamic_programming/kadanes_algorithm.dart
│ │ └── ./Dart/dynamic_programming/min_number_of_jumps.dart
│ ├── ./Dart/graphs
│ │ ├── ./Dart/graphs/breadth_first_search.dart
│ │ ├── ./Dart/graphs/depth_first_search.dart
│ │ └── ./Dart/graphs/nearest_neighbour_algorithm.dart
│ ├── ./Dart/maths
│ │ ├── ./Dart/maths/abs.dart
│ │ ├── ./Dart/maths/abs_max.dart
│ │ ├── ./Dart/maths/abs_min.dart
│ │ ├── ./Dart/maths/amicable_numbers.dart
│ │ ├── ./Dart/maths/Armstrong_number.dart
│ │ ├── ./Dart/maths/average.dart
│ │ ├── ./Dart/maths/eulers_totient.dart
│ │ ├── ./Dart/maths/factorial_approximation.dart
│ │ ├── ./Dart/maths/factorial.dart
│ │ ├── ./Dart/maths/factorial_recursion.dart
│ │ ├── ./Dart/maths/factors.dart
│ │ ├── ./Dart/maths/fermats_little_theorem.dart
│ │ ├── ./Dart/maths/fibonacci_dynamic_programming.dart
│ │ ├── ./Dart/maths/fibonacci_recursion.dart
│ │ ├── ./Dart/maths/find_max.dart
│ │ ├── ./Dart/maths/find_max_recursion.dart
│ │ ├── ./Dart/maths/find_min.dart
│ │ ├── ./Dart/maths/find_min_recursion.dart
│ │ ├── ./Dart/maths/hamming_distance.dart
│ │ ├── ./Dart/maths/Kynea_numbers.dart
│ │ ├── ./Dart/maths/LinearDiophantineEqn.dart
│ │ ├── ./Dart/maths/lu_decomposition.dart
│ │ ├── ./Dart/maths/newton_method.dart
│ │ ├── ./Dart/maths/palindrome_number.dart
│ │ ├── ./Dart/maths/palindrome_string.dart
│ │ ├── ./Dart/maths/palindrome_string_recursion.dart
│ │ ├── ./Dart/maths/perfect_number.dart
│ │ ├── ./Dart/maths/pow.dart
│ │ ├── ./Dart/maths/power_of_two.dart
│ │ ├── ./Dart/maths/prime_check.dart
│ │ ├── ./Dart/maths/relu_function.dart
│ │ ├── ./Dart/maths/shreedharacharya.dart
│ │ ├── ./Dart/maths/sieve_of_eratosthenes.dart
│ │ ├── ./Dart/maths/sigmoid.dart
│ │ ├── ./Dart/maths/simpson_rule.dart
│ │ ├── ./Dart/maths/sphenic_number.dart
│ │ ├── ./Dart/maths/symmetric_derivative.dart
│ │ └── ./Dart/maths/Ugly_numbers.dart
│ ├── ./Dart/other
│ │ ├── ./Dart/other/ackermann.dart
│ │ ├── ./Dart/other/binpow.dart
│ │ ├── ./Dart/other/collatz.dart
│ │ ├── ./Dart/other/fisher_yates_shuffle.dart
│ │ ├── ./Dart/other/FizzBuzz.dart
│ │ ├── ./Dart/other/gcd.dart
│ │ ├── ./Dart/other/haversine_formula.dart
│ │ ├── ./Dart/other/heaps_algorithm.dart
│ │ ├── ./Dart/other/kadaneAlgo.dart
│ │ ├── ./Dart/other/LCM.dart
│ │ ├── ./Dart/other/magic_number.dart
│ │ ├── ./Dart/other/Moore_voting_algorithm.dart
│ │ ├── ./Dart/other/N_bonacci.dart
│ │ ├── ./Dart/other/swap_all_odd_and_even_bits.dart
│ │ └── ./Dart/other/tower_of_hanoi.dart
│ ├── ./Dart/project_euler
│ │ ├── ./Dart/project_euler/problem_1
│ │ │ └── ./Dart/project_euler/problem_1/sol1.dart
│ │ ├── ./Dart/project_euler/problem_10
│ │ │ └── ./Dart/project_euler/problem_10/sol10.dart
│ │ ├── ./Dart/project_euler/problem_12
│ │ │ └── ./Dart/project_euler/problem_12/sol12.dart
│ │ ├── ./Dart/project_euler/problem_13
│ │ │ └── ./Dart/project_euler/problem_13/sol13.dart
│ │ ├── ./Dart/project_euler/problem_17
│ │ │ └── ./Dart/project_euler/problem_17/sol17.dart
│ │ ├── ./Dart/project_euler/problem_2
│ │ │ └── ./Dart/project_euler/problem_2/sol2.dart
│ │ ├── ./Dart/project_euler/problem_3
│ │ │ └── ./Dart/project_euler/problem_3/sol3.dart
│ │ ├── ./Dart/project_euler/problem_4
│ │ │ └── ./Dart/project_euler/problem_4/sol4.dart
│ │ ├── ./Dart/project_euler/problem_5
│ │ │ └── ./Dart/project_euler/problem_5/sol5.dart
│ │ ├── ./Dart/project_euler/problem_6
│ │ │ └── ./Dart/project_euler/problem_6/sol6.dart
│ │ ├── ./Dart/project_euler/problem_7
│ │ │ └── ./Dart/project_euler/problem_7/sol7.dart
│ │ ├── ./Dart/project_euler/problem_8
│ │ │ └── ./Dart/project_euler/problem_8/sol8.dart
│ │ └── ./Dart/project_euler/problem_9
│ │ └── ./Dart/project_euler/problem_9/sol9.dart
│ ├── ./Dart/pubspec.yaml
│ ├── ./Dart/README.html
│ ├── ./Dart/README.md
│ ├── ./Dart/search
│ │ ├── ./Dart/search/binary_Search.dart
│ │ ├── ./Dart/search/binary_search_recursion.dart
│ │ ├── ./Dart/search/fibonacci_Search.dart
│ │ ├── ./Dart/search/interpolation_Search.dart
│ │ ├── ./Dart/search/jump_Search.dart
│ │ ├── ./Dart/search/linear_Search.dart
│ │ ├── ./Dart/search/peak_element.dart
│ │ └── ./Dart/search/ternary_Search.dart
│ ├── ./Dart/sort
│ │ ├── ./Dart/sort/bubble_Sort.dart
│ │ ├── ./Dart/sort/cocktail_sort.dart
│ │ ├── ./Dart/sort/comb_sort.dart
│ │ ├── ./Dart/sort/gnome_Sort.dart
│ │ ├── ./Dart/sort/heap_Sort.dart
│ │ ├── ./Dart/sort/insert_Sort.dart
│ │ ├── ./Dart/sort/merge_sort.dart
│ │ ├── ./Dart/sort/pigeonhole_sort.dart
│ │ ├── ./Dart/sort/quick_Sort.dart
│ │ ├── ./Dart/sort/radix_sort.dart
│ │ ├── ./Dart/sort/select_Sort.dart
│ │ ├── ./Dart/sort/shell_Sort.dart
│ │ └── ./Dart/sort/tim_Sort.dart
│ ├── ./Dart/strings
│ │ ├── ./Dart/strings/knuth_morris_prat.dart
│ │ ├── ./Dart/strings/remove duplicates.dart
│ │ ├── ./Dart/strings/reverse_string.dart
│ │ └── ./Dart/strings/reverse_words_of_string.dart
│ └── ./Dart/tests
│ ├── ./Dart/tests/README.html
│ └── ./Dart/tests/README.md
├── ./Elixir
│ ├── ./Elixir/DIRECTORY.html
│ ├── ./Elixir/DIRECTORY.md
│ ├── ./Elixir/lib
│ │ ├── ./Elixir/lib/algorithims.ex
│ │ ├── ./Elixir/lib/codewars
│ │ │ └── ./Elixir/lib/codewars/sort_the_odd.ex
│ │ ├── ./Elixir/lib/data_structures
│ │ │ ├── ./Elixir/lib/data_structures/doubly_linked_list.ex
│ │ │ └── ./Elixir/lib/data_structures/singly_linked_list.ex
│ │ └── ./Elixir/lib/sorting
│ │ ├── ./Elixir/lib/sorting/merge_sort.ex
│ │ └── ./Elixir/lib/sorting/quick_sort.ex
│ ├── ./Elixir/mix.exs
│ ├── ./Elixir/README.html
│ ├── ./Elixir/README.md
│ └── ./Elixir/test
│ ├── ./Elixir/test/algorithims_test.exs
│ ├── ./Elixir/test/codewars
│ │ └── ./Elixir/test/codewars/sort_the_odd_test.exs
│ ├── ./Elixir/test/data_structures
│ │ ├── ./Elixir/test/data_structures/doubly_linked_list_test.exs
│ │ └── ./Elixir/test/data_structures/singly_linked_list_test.exs
│ ├── ./Elixir/test/sorting
│ │ ├── ./Elixir/test/sorting/merge_sort_test.exs
│ │ └── ./Elixir/test/sorting/quick_sort_test.exs
│ └── ./Elixir/test/test_helper.exs
├── ./Elm
│ ├── ./Elm/DIRECTORY.html
│ ├── ./Elm/DIRECTORY.md
│ ├── ./Elm/elm.json
│ ├── ./Elm/README.html
│ ├── ./Elm/README.md
│ └── ./Elm/src
│ ├── ./Elm/src/Main.elm
│ ├── ./Elm/src/Sorting
│ │ ├── ./Elm/src/Sorting/BubbleSort.elm
│ │ ├── ./Elm/src/Sorting/InsertionSort.elm
│ │ ├── ./Elm/src/Sorting/MergeSort.elm
│ │ └── ./Elm/src/Sorting/SelectionSort.elm
│ └── ./Elm/src/Util.elm
├── ./F-Sharp
│ ├── ./F-Sharp/Algorithms
│ │ ├── ./F-Sharp/Algorithms/Algorithms.fsproj
│ │ ├── ./F-Sharp/Algorithms/Math
│ │ │ ├── ./F-Sharp/Algorithms/Math/Abs.fs
│ │ │ ├── ./F-Sharp/Algorithms/Math/AbsMax.fs
│ │ │ ├── ./F-Sharp/Algorithms/Math/AbsMin.fs
│ │ │ ├── ./F-Sharp/Algorithms/Math/Factorial.fs
│ │ │ ├── ./F-Sharp/Algorithms/Math/Fibonacci.fs
│ │ │ ├── ./F-Sharp/Algorithms/Math/Perfect_Numbers.fs
│ │ │ └── ./F-Sharp/Algorithms/Math/Power.fs
│ │ ├── ./F-Sharp/Algorithms/Program.fs
│ │ ├── ./F-Sharp/Algorithms/Search
│ │ │ └── ./F-Sharp/Algorithms/Search/BinarySearch.fs
│ │ ├── ./F-Sharp/Algorithms/Sort
│ │ │ ├── ./F-Sharp/Algorithms/Sort/Bubble_Sort.fs
│ │ │ ├── ./F-Sharp/Algorithms/Sort/Comb_Sort.fs
│ │ │ ├── ./F-Sharp/Algorithms/Sort/Cycle_Sort.fs
│ │ │ ├── ./F-Sharp/Algorithms/Sort/Gnome_Sort.fs
│ │ │ ├── ./F-Sharp/Algorithms/Sort/Heap_Sort.fs
│ │ │ ├── ./F-Sharp/Algorithms/Sort/Insertion_Sort.fs
│ │ │ ├── ./F-Sharp/Algorithms/Sort/Merge_Sort.fs
│ │ │ ├── ./F-Sharp/Algorithms/Sort/Pancake_Sort.fs
│ │ │ └── ./F-Sharp/Algorithms/Sort/Quick_Sort.fs
│ │ └── ./F-Sharp/Algorithms/Strings
│ │ ├── ./F-Sharp/Algorithms/Strings/Capitalize.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/CheckAnagrams.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/CheckPangram.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/IsPalindrome.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/JaroWinkler.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/KnuthMorrisPratt.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/LevenshteinDistance.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/Lower.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/Manacher.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/MinCostStringConversion.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/NaiveStringSearch.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/PrefixFunction.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/RabinKarp.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/RemoveDuplicates.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/ReverseLetters.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/ReverseWords.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/Split.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/SwapCase.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/Upper.fs
│ │ ├── ./F-Sharp/Algorithms/Strings/WordOccurrence.fs
│ │ └── ./F-Sharp/Algorithms/Strings/ZFunction.fs
│ ├── ./F-Sharp/Algorithms.Tests
│ │ ├── ./F-Sharp/Algorithms.Tests/Algorithms.Tests.fsproj
│ │ ├── ./F-Sharp/Algorithms.Tests/Math
│ │ │ ├── ./F-Sharp/Algorithms.Tests/Math/FactorialTests.fs
│ │ │ ├── ./F-Sharp/Algorithms.Tests/Math/PerfectNumbersTests.fs
│ │ │ └── ./F-Sharp/Algorithms.Tests/Math/PowerTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Program.fs
│ │ └── ./F-Sharp/Algorithms.Tests/Strings
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/CapitalizeTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/CheckAnagramsTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/CheckPangramTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/IsPalindromeTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/JaroWinklerTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/KnuthMorrisPrattTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/LevenshteinDistanceTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/LowerTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/ManacherTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/MinCostStringConversionTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/NaiveStringSearchTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/PrefixFunctionTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/RabinKarpTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/RemoveDuplicatesTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/ReverseLettersTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/ReverseWordsTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/SplitTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/SwapCaseTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/UpperTests.fs
│ │ ├── ./F-Sharp/Algorithms.Tests/Strings/WordOccurrenceTests.fs
│ │ └── ./F-Sharp/Algorithms.Tests/Strings/ZFunctionTests.fs
│ ├── ./F-Sharp/DIRECTORY.html
│ ├── ./F-Sharp/DIRECTORY.md
│ ├── ./F-Sharp/F-Sharp.sln
│ ├── ./F-Sharp/README.html
│ └── ./F-Sharp/README.md
├── ./Go
│ ├── ./Go/ciphers
│ │ ├── ./Go/ciphers/caesar
│ │ │ ├── ./Go/ciphers/caesar/CaesarCipher.go
│ │ │ └── ./Go/ciphers/caesar/caesar_test.go
│ │ ├── ./Go/ciphers/diffiehelkeyexchange
│ │ │ ├── ./Go/ciphers/diffiehelkeyexchange/diffieHellmanKeyExchange.go
│ │ │ └── ./Go/ciphers/diffiehelkeyexchange/diffieHellmanKeyExchange_test.go
│ │ ├── ./Go/ciphers/polybius
│ │ │ ├── ./Go/ciphers/polybius/polybius.go
│ │ │ └── ./Go/ciphers/polybius/polybius_test.go
│ │ ├── ./Go/ciphers/rot13
│ │ │ ├── ./Go/ciphers/rot13/rot13.go
│ │ │ └── ./Go/ciphers/rot13/rot13_test.go
│ │ ├── ./Go/ciphers/rsa
│ │ │ ├── ./Go/ciphers/rsa/RSAcipher.go
│ │ │ └── ./Go/ciphers/rsa/rsa_cipher_test.go
│ │ ├── ./Go/ciphers/rsaBig
│ │ │ ├── ./Go/ciphers/rsaBig/RSAcipher(Big).go
│ │ │ └── ./Go/ciphers/rsaBig/rsa_cipher_big_test.go
│ │ └── ./Go/ciphers/xor
│ │ ├── ./Go/ciphers/xor/xorCipher.go
│ │ └── ./Go/ciphers/xor/xor_cipher_test.go
│ ├── ./Go/conversions
│ │ └── ./Go/conversions/roman-to-integer
│ │ ├── ./Go/conversions/roman-to-integer/roman_to_integer.go
│ │ └── ./Go/conversions/roman-to-integer/roman_to_integer_test.go
│ ├── ./Go/datastructures
│ │ ├── ./Go/datastructures/binary-tree
│ │ │ ├── ./Go/datastructures/binary-tree/binarysearchtree.go
│ │ │ ├── ./Go/datastructures/binary-tree/binarytree.go
│ │ │ ├── ./Go/datastructures/binary-tree/btree.go
│ │ │ └── ./Go/datastructures/binary-tree/node.go
│ │ ├── ./Go/datastructures/dynamic-array
│ │ │ └── ./Go/datastructures/dynamic-array/dynamicarray.go
│ │ ├── ./Go/datastructures/hashmap
│ │ │ ├── ./Go/datastructures/hashmap/hashmap.go
│ │ │ └── ./Go/datastructures/hashmap/hashmap_test.go
│ │ ├── ./Go/datastructures/linkedlist
│ │ │ ├── ./Go/datastructures/linkedlist/doublylinkedlist
│ │ │ └── ./Go/datastructures/linkedlist/singlylinkedlist
│ │ └── ./Go/datastructures/trie
│ │ ├── ./Go/datastructures/trie/trie.go
│ │ └── ./Go/datastructures/trie/trie_test.go
│ ├── ./Go/designpatterns
│ │ ├── ./Go/designpatterns/abstractfactory
│ │ │ ├── ./Go/designpatterns/abstractfactory/abstractfactory_test.go
│ │ │ ├── ./Go/designpatterns/abstractfactory/adidas.go
│ │ │ ├── ./Go/designpatterns/abstractfactory/adidasshirt.go
│ │ │ ├── ./Go/designpatterns/abstractfactory/adidasshoe.go
│ │ │ ├── ./Go/designpatterns/abstractfactory/ishirt.go
│ │ │ ├── ./Go/designpatterns/abstractfactory/ishoe.go
│ │ │ ├── ./Go/designpatterns/abstractfactory/isportsFactory.go
│ │ │ ├── ./Go/designpatterns/abstractfactory/nike.go
│ │ │ ├── ./Go/designpatterns/abstractfactory/nikeshirt.go
│ │ │ └── ./Go/designpatterns/abstractfactory/nikeshoe.go
│ │ ├── ./Go/designpatterns/builder
│ │ │ ├── ./Go/designpatterns/builder/builderinterface.go
│ │ │ ├── ./Go/designpatterns/builder/builderpattern_test.go
│ │ │ ├── ./Go/designpatterns/builder/director.go
│ │ │ ├── ./Go/designpatterns/builder/house.go
│ │ │ ├── ./Go/designpatterns/builder/igloobuilder.go
│ │ │ └── ./Go/designpatterns/builder/normalbuilder.go
│ │ ├── ./Go/designpatterns/factorymethod
│ │ │ ├── ./Go/designpatterns/factorymethod/accountingDepartment.go
│ │ │ ├── ./Go/designpatterns/factorymethod/departmentFactory.go
│ │ │ ├── ./Go/designpatterns/factorymethod/department.go
│ │ │ ├── ./Go/designpatterns/factorymethod/factorymethod_test.go
│ │ │ ├── ./Go/designpatterns/factorymethod/financeDepartment.go
│ │ │ └── ./Go/designpatterns/factorymethod/idepartment.go
│ │ └── ./Go/designpatterns/prototype
│ │ ├── ./Go/designpatterns/prototype/file.go
│ │ ├── ./Go/designpatterns/prototype/folder.go
│ │ ├── ./Go/designpatterns/prototype/nodeInterface.go
│ │ └── ./Go/designpatterns/prototype/prototype_test.go
│ ├── ./Go/DIRECTORY.html
│ ├── ./Go/DIRECTORY.md
│ ├── ./Go/dynamicprogramming
│ │ ├── ./Go/dynamicprogramming/binomialcoeffecient.go
│ │ ├── ./Go/dynamicprogramming/fibonacci.go
│ │ ├── ./Go/dynamicprogramming/fibonacc_test.go
│ │ ├── ./Go/dynamicprogramming/knapsack.go
│ │ ├── ./Go/dynamicprogramming/longestCommonSubsequence.go
│ │ ├── ./Go/dynamicprogramming/longest-palindromic-subsequence.go
│ │ ├── ./Go/dynamicprogramming/matrix-multiplication.go
│ │ └── ./Go/dynamicprogramming/rod-cutting.go
│ ├── ./Go/genetic-algorithm
│ │ └── ./Go/genetic-algorithm/genetic_algo.go
│ ├── ./Go/go.mod
│ ├── ./Go/go.sum
│ ├── ./Go/graphs
│ │ ├── ./Go/graphs/depthfirstsearch
│ │ │ └── ./Go/graphs/depthfirstsearch/depthfirstsearch.go
│ │ ├── ./Go/graphs/floydwarshall
│ │ │ └── ./Go/graphs/floydwarshall/floydwarshall.go
│ │ └── ./Go/graphs/search
│ │ ├── ./Go/graphs/search/breadthFirstSearch.go
│ │ └── ./Go/graphs/search/breadthFirstSearch_test.go
│ ├── ./Go/math
│ │ ├── ./Go/math/gcd
│ │ │ ├── ./Go/math/gcd/gcd.go
│ │ │ ├── ./Go/math/gcd/gcditerative.go
│ │ │ └── ./Go/math/gcd/gcd_test.go
│ │ ├── ./Go/math/lcm
│ │ │ └── ./Go/math/lcm/lcm.go
│ │ ├── ./Go/math/modulararithmetic
│ │ │ ├── ./Go/math/modulararithmetic/modularexponentiation.go
│ │ │ └── ./Go/math/modulararithmetic/modularexponentiation_test.go
│ │ ├── ./Go/math/permutation
│ │ │ ├── ./Go/math/permutation/heaps.go
│ │ │ └── ./Go/math/permutation/heaps_test.go
│ │ ├── ./Go/math/power
│ │ │ ├── ./Go/math/power/fastexponent.go
│ │ │ └── ./Go/math/power/fastexponent_test.go
│ │ ├── ./Go/math/prime
│ │ │ ├── ./Go/math/prime/millerrabinprimalitytest.go
│ │ │ ├── ./Go/math/prime/primecheck.go
│ │ │ └── ./Go/math/prime/prime_test.go
│ │ ├── ./Go/math/pythagoras
│ │ │ ├── ./Go/math/pythagoras/pythagoras.go
│ │ │ └── ./Go/math/pythagoras/pythagoras_test.go
│ │ └── ./Go/math/sieve
│ │ ├── ./Go/math/sieve/Sieve.go
│ │ └── ./Go/math/sieve/sieve_test.go
│ ├── ./Go/other
│ │ ├── ./Go/other/maxsubarraysum
│ │ │ └── ./Go/other/maxsubarraysum/maxsubarraysum.go
│ │ ├── ./Go/other/monte_carlo_pi
│ │ │ ├── ./Go/other/monte_carlo_pi/monte_carlo_pi.go
│ │ │ └── ./Go/other/monte_carlo_pi/monte_carlo_pi_test.go
│ │ ├── ./Go/other/nestedbrackets
│ │ │ └── ./Go/other/nestedbrackets/nestedbrackets.go
│ │ ├── ./Go/other/passwordgenerator
│ │ │ └── ./Go/other/passwordgenerator/passwordgenerator.go
│ │ └── ./Go/other/stringcombinations
│ │ └── ./Go/other/stringcombinations/stringcombinations.go
│ ├── ./Go/README.html
│ ├── ./Go/README.md
│ ├── ./Go/searches
│ │ ├── ./Go/searches/binarysearch.go
│ │ ├── ./Go/searches/linearsearch.go
│ │ └── ./Go/searches/search_test.go
│ ├── ./Go/sorts
│ │ ├── ./Go/sorts/bubblesort.go
│ │ ├── ./Go/sorts/heapsort.go
│ │ ├── ./Go/sorts/insertionsort.go
│ │ ├── ./Go/sorts/mergesort.go
│ │ ├── ./Go/sorts/quicksort.go
│ │ ├── ./Go/sorts/radixsort.go
│ │ ├── ./Go/sorts/selectionsort.go
│ │ ├── ./Go/sorts/shellsort.go
│ │ ├── ./Go/sorts/sorts_testcases.go
│ │ └── ./Go/sorts/sorts_test.go
│ └── ./Go/strings
│ ├── ./Go/strings/levenshteindistance
│ │ ├── ./Go/strings/levenshteindistance/levenshteinDistance.go
│ │ └── ./Go/strings/levenshteindistance/levenshteinDistance_test.go
│ ├── ./Go/strings/multiple-string-matching
│ │ ├── ./Go/strings/multiple-string-matching/advanced-aho-corasick
│ │ ├── ./Go/strings/multiple-string-matching/aho-corasick
│ │ ├── ./Go/strings/multiple-string-matching/patterns.txt
│ │ ├── ./Go/strings/multiple-string-matching/sbom
│ │ └── ./Go/strings/multiple-string-matching/text.txt
│ ├── ./Go/strings/naivesearch
│ │ ├── ./Go/strings/naivesearch/naiveStringSearch.go
│ │ └── ./Go/strings/naivesearch/naiveStringSearch_test.go
│ └── ./Go/strings/single-string-matching
│ ├── ./Go/strings/single-string-matching/bom
│ ├── ./Go/strings/single-string-matching/horspool
│ ├── ./Go/strings/single-string-matching/kmp
│ ├── ./Go/strings/single-string-matching/pattern.txt
│ └── ./Go/strings/single-string-matching/text.txt
├── ./Haskell
│ ├── ./Haskell/DIRECTORY.html
│ ├── ./Haskell/DIRECTORY.md
│ ├── ./Haskell/package.yaml
│ ├── ./Haskell/README.html
│ ├── ./Haskell/README.md
│ ├── ./Haskell/Setup.hs
│ ├── ./Haskell/specs
│ │ ├── ./Haskell/specs/SortSpecs
│ │ │ ├── ./Haskell/specs/SortSpecs/BubbleSortSpec.hs
│ │ │ ├── ./Haskell/specs/SortSpecs/HeapSortSpec.hs
│ │ │ ├── ./Haskell/specs/SortSpecs/InsertionSortSpec.hs
│ │ │ ├── ./Haskell/specs/SortSpecs/MergeSortSpec.hs
│ │ │ ├── ./Haskell/specs/SortSpecs/QuickSortSpec.hs
│ │ │ ├── ./Haskell/specs/SortSpecs/SelectionSortSpec.hs
│ │ │ └── ./Haskell/specs/SortSpecs/ShellSortSpec.hs
│ │ └── ./Haskell/specs/Spec.hs
│ ├── ./Haskell/src
│ │ ├── ./Haskell/src/BinaryTree
│ │ │ ├── ./Haskell/src/BinaryTree/BinarySearchTree.hs
│ │ │ └── ./Haskell/src/BinaryTree/BinaryTree.hs
│ │ ├── ./Haskell/src/DataStructures
│ │ │ └── ./Haskell/src/DataStructures/MaxHeap.hs
│ │ ├── ./Haskell/src/Graph
│ │ │ ├── ./Haskell/src/Graph/Dfs.hs
│ │ │ └── ./Haskell/src/Graph/DirectedGraph.hs
│ │ ├── ./Haskell/src/HaskellAlgorithms.hs
│ │ ├── ./Haskell/src/Maths
│ │ │ ├── ./Haskell/src/Maths/Factorial.hs
│ │ │ ├── ./Haskell/src/Maths/Fibonacci.hs
│ │ │ ├── ./Haskell/src/Maths/GraphDist.hs
│ │ │ ├── ./Haskell/src/Maths/KadaneAlgorithm.hs
│ │ │ └── ./Haskell/src/Maths/Palindrome.hs
│ │ ├── ./Haskell/src/Misc
│ │ │ ├── ./Haskell/src/Misc/BinarySearch.hs
│ │ │ ├── ./Haskell/src/Misc/NQueens.hs
│ │ │ ├── ./Haskell/src/Misc/Powerset.hs
│ │ │ └── ./Haskell/src/Misc/TowersOfHanoi.hs
│ │ ├── ./Haskell/src/ProjectEuler
│ │ │ ├── ./Haskell/src/ProjectEuler/Problem1
│ │ │ ├── ./Haskell/src/ProjectEuler/Problem2
│ │ │ ├── ./Haskell/src/ProjectEuler/Problem3
│ │ │ ├── ./Haskell/src/ProjectEuler/Problem4
│ │ │ ├── ./Haskell/src/ProjectEuler/Problem5
│ │ │ ├── ./Haskell/src/ProjectEuler/Problem6
│ │ │ └── ./Haskell/src/ProjectEuler/Problem7
│ │ ├── ./Haskell/src/Robotics
│ │ │ └── ./Haskell/src/Robotics/ComplementaryFilter
│ │ ├── ./Haskell/src/Sorts
│ │ │ ├── ./Haskell/src/Sorts/BubbleSort.hs
│ │ │ ├── ./Haskell/src/Sorts/HeapSort.hs
│ │ │ ├── ./Haskell/src/Sorts/InsertionSort.hs
│ │ │ ├── ./Haskell/src/Sorts/MergeSort.hs
│ │ │ ├── ./Haskell/src/Sorts/QuickSort.hs
│ │ │ ├── ./Haskell/src/Sorts/SelectionSort.hs
│ │ │ └── ./Haskell/src/Sorts/ShellSort.hs
│ │ ├── ./Haskell/src/SpecializedStructure
│ │ │ └── ./Haskell/src/SpecializedStructure/MergeFindSet.hs
│ │ └── ./Haskell/src/Statistics
│ │ ├── ./Haskell/src/Statistics/Center.hs
│ │ └── ./Haskell/src/Statistics/Dispersion.hs
│ ├── ./Haskell/stack.yaml
│ └── ./Haskell/stack.yaml.lock
├── ./Java
│ ├── ./Java/ciphers
│ │ ├── ./Java/ciphers/AESEncryption.java
│ │ ├── ./Java/ciphers/AES.java
│ │ ├── ./Java/ciphers/Caesar.java
│ │ ├── ./Java/ciphers/ColumnarTranspositionCipher.java
│ │ ├── ./Java/ciphers/RSA.java
│ │ ├── ./Java/ciphers/SimpleSubstitutionCipher.java
│ │ └── ./Java/ciphers/Vigenere.java
│ ├── ./Java/Conversions
│ │ ├── ./Java/Conversions/AnyBaseToAnyBase.java
│ │ ├── ./Java/Conversions/AnyBaseToDecimal.java
│ │ ├── ./Java/Conversions/AnytoAny.java
│ │ ├── ./Java/Conversions/BinaryToDecimal.java
│ │ ├── ./Java/Conversions/BinaryToHexadecimal.java
│ │ ├── ./Java/Conversions/BinaryToOctal.java
│ │ ├── ./Java/Conversions/DecimalToAnyBase.java
│ │ ├── ./Java/Conversions/DecimalToBinary.java
│ │ ├── ./Java/Conversions/DecimalToHexaDecimal.java
│ │ ├── ./Java/Conversions/DecimalToOctal.java
│ │ ├── ./Java/Conversions/HexaDecimalToBinary.java
│ │ ├── ./Java/Conversions/HexaDecimalToDecimal.java
│ │ ├── ./Java/Conversions/HexToOct.java
│ │ ├── ./Java/Conversions/IntegerToRoman.java
│ │ ├── ./Java/Conversions/OctalToDecimal.java
│ │ ├── ./Java/Conversions/OctalToHexadecimal.java
│ │ ├── ./Java/Conversions/RgbHsvConversion.java
│ │ └── ./Java/Conversions/RomanToInteger.java
│ ├── ./Java/DataStructures
│ │ ├── ./Java/DataStructures/Bags
│ │ │ └── ./Java/DataStructures/Bags/Bag.java
│ │ ├── ./Java/DataStructures/Buffers
│ │ │ └── ./Java/DataStructures/Buffers/CircularBuffer.java
│ │ ├── ./Java/DataStructures/DynamicArray
│ │ │ └── ./Java/DataStructures/DynamicArray/DynamicArray.java
│ │ ├── ./Java/DataStructures/Graphs
│ │ │ ├── ./Java/DataStructures/Graphs/A_Star.java
│ │ │ ├── ./Java/DataStructures/Graphs/BellmanFord.java
│ │ │ ├── ./Java/DataStructures/Graphs/ConnectedComponent.java
│ │ │ ├── ./Java/DataStructures/Graphs/Cycles.java
│ │ │ ├── ./Java/DataStructures/Graphs/FloydWarshall.java
│ │ │ ├── ./Java/DataStructures/Graphs/Graphs.java
│ │ │ ├── ./Java/DataStructures/Graphs/Kruskal.java
│ │ │ ├── ./Java/DataStructures/Graphs/MatrixGraphs.java
│ │ │ └── ./Java/DataStructures/Graphs/PrimMST.java
│ │ ├── ./Java/DataStructures/HashMap
│ │ │ └── ./Java/DataStructures/HashMap/Hashing
│ │ ├── ./Java/DataStructures/Heaps
│ │ │ ├── ./Java/DataStructures/Heaps/EmptyHeapException.java
│ │ │ ├── ./Java/DataStructures/Heaps/GenericHeap
│ │ │ ├── ./Java/DataStructures/Heaps/HeapElement.java
│ │ │ ├── ./Java/DataStructures/Heaps/Heap.java
│ │ │ ├── ./Java/DataStructures/Heaps/MaxHeap.java
│ │ │ ├── ./Java/DataStructures/Heaps/MinHeap.java
│ │ │ └── ./Java/DataStructures/Heaps/MinPriorityQueue.java
│ │ ├── ./Java/DataStructures/Lists
│ │ │ ├── ./Java/DataStructures/Lists/CircleLinkedList.java
│ │ │ ├── ./Java/DataStructures/Lists/CountSinglyLinkedListRecursion.java
│ │ │ ├── ./Java/DataStructures/Lists/CursorLinkedList.java
│ │ │ ├── ./Java/DataStructures/Lists/DoublyLinkedList.java
│ │ │ ├── ./Java/DataStructures/Lists/Merge_K_SortedLinkedlist.java
│ │ │ ├── ./Java/DataStructures/Lists/MergeSortedArrayList.java
│ │ │ ├── ./Java/DataStructures/Lists/MergeSortedSinglyLinkedList.java
│ │ │ ├── ./Java/DataStructures/Lists/SearchSinglyLinkedListRecursion.java
│ │ │ └── ./Java/DataStructures/Lists/SinglyLinkedList.java
│ │ ├── ./Java/DataStructures/Queues
│ │ │ ├── ./Java/DataStructures/Queues/GenericArrayListQueue.java
│ │ │ ├── ./Java/DataStructures/Queues/LinkedQueue.java
│ │ │ ├── ./Java/DataStructures/Queues/PriorityQueues.java
│ │ │ └── ./Java/DataStructures/Queues/Queues.java
│ │ ├── ./Java/DataStructures/Stacks
│ │ │ ├── ./Java/DataStructures/Stacks/BalancedBrackets.java
│ │ │ ├── ./Java/DataStructures/Stacks/DecimalToAnyUsingStack.java
│ │ │ ├── ./Java/DataStructures/Stacks/InfixToPostfix.java
│ │ │ ├── ./Java/DataStructures/Stacks/NodeStack.java
│ │ │ ├── ./Java/DataStructures/Stacks/StackArray.java
│ │ │ ├── ./Java/DataStructures/Stacks/StackArrayList.java
│ │ │ └── ./Java/DataStructures/Stacks/StackOfLinkedList.java
│ │ └── ./Java/DataStructures/Trees
│ │ ├── ./Java/DataStructures/Trees/AVLSimple
│ │ ├── ./Java/DataStructures/Trees/AVLTree.java
│ │ ├── ./Java/DataStructures/Trees/BinaryTree.java
│ │ ├── ./Java/DataStructures/Trees/BSTIterative.java
│ │ ├── ./Java/DataStructures/Trees/BSTRecursive.java
│ │ ├── ./Java/DataStructures/Trees/GenericTree.java
│ │ ├── ./Java/DataStructures/Trees/LevelOrderTraversal.java
│ │ ├── ./Java/DataStructures/Trees/LevelOrderTraversalQueue.java
│ │ ├── ./Java/DataStructures/Trees/PrintTopViewofTree.java
│ │ ├── ./Java/DataStructures/Trees/RedBlackBST.java
│ │ ├── ./Java/DataStructures/Trees/TreeTraversal.java
│ │ ├── ./Java/DataStructures/Trees/TrieImp.java
│ │ └── ./Java/DataStructures/Trees/ValidBSTOrNot.java
│ ├── ./Java/DIRECTORY.html
│ ├── ./Java/DIRECTORY.md
│ ├── ./Java/divideconquer
│ │ ├── ./Java/divideconquer/ClosestPair.java
│ │ └── ./Java/divideconquer/SkylineAlgorithm.java
│ ├── ./Java/DynamicProgramming
│ │ ├── ./Java/DynamicProgramming/BoardPath.java
│ │ ├── ./Java/DynamicProgramming/CoinChange.java
│ │ ├── ./Java/DynamicProgramming/EditDistance.java
│ │ ├── ./Java/DynamicProgramming/EggDropping.java
│ │ ├── ./Java/DynamicProgramming/Fibonacci.java
│ │ ├── ./Java/DynamicProgramming/FordFulkerson.java
│ │ ├── ./Java/DynamicProgramming/KadaneAlgorithm.java
│ │ ├── ./Java/DynamicProgramming/Knapsack.java
│ │ ├── ./Java/DynamicProgramming/LevenshteinDistance.java
│ │ ├── ./Java/DynamicProgramming/LongestCommonSubsequence.java
│ │ ├── ./Java/DynamicProgramming/LongestIncreasingSubsequence.java
│ │ ├── ./Java/DynamicProgramming/LongestPalindromicSubsequence.java
│ │ ├── ./Java/DynamicProgramming/LongestValidParentheses.java
│ │ ├── ./Java/DynamicProgramming/MatrixChainMultiplication.java
│ │ ├── ./Java/DynamicProgramming/MinimumPathSum.java
│ │ ├── ./Java/DynamicProgramming/MinimumSumPartition.java
│ │ ├── ./Java/DynamicProgramming/RodCutting.java
│ │ └── ./Java/DynamicProgramming/SubsetSum.java
│ ├── ./Java/Maths
│ │ ├── ./Java/Maths/AbsoluteMax.java
│ │ ├── ./Java/Maths/AbsoluteMin.java
│ │ ├── ./Java/Maths/AbsoluteValue.java
│ │ ├── ./Java/Maths/AliquotSum.java
│ │ ├── ./Java/Maths/AmicableNumber.java
│ │ ├── ./Java/Maths/Area.java
│ │ ├── ./Java/Maths/Armstrong.java
│ │ ├── ./Java/Maths/Average.java
│ │ ├── ./Java/Maths/BinaryPow.java
│ │ ├── ./Java/Maths/Ceil.java
│ │ ├── ./Java/Maths/CircularConvolutionFFT.java
│ │ ├── ./Java/Maths/Combinations.java
│ │ ├── ./Java/Maths/ConvolutionFFT.java
│ │ ├── ./Java/Maths/Convolution.java
│ │ ├── ./Java/Maths/EulerMethod.java
│ │ ├── ./Java/Maths/Factorial.java
│ │ ├── ./Java/Maths/FactorialRecursion.java
│ │ ├── ./Java/Maths/FFTBluestein.java
│ │ ├── ./Java/Maths/FFT.java
│ │ ├── ./Java/Maths/FibonacciNumber.java
│ │ ├── ./Java/Maths/FindMax.java
│ │ ├── ./Java/Maths/FindMaxRecursion.java
│ │ ├── ./Java/Maths/FindMin.java
│ │ ├── ./Java/Maths/FindMinRecursion.java
│ │ ├── ./Java/Maths/Floor.java
│ │ ├── ./Java/Maths/GCD.java
│ │ ├── ./Java/Maths/GCDRecursion.java
│ │ ├── ./Java/Maths/LucasSeries.java
│ │ ├── ./Java/Maths/MaxValue.java
│ │ ├── ./Java/Maths/Median.java
│ │ ├── ./Java/Maths/MinValue.java
│ │ ├── ./Java/Maths/Mode.java
│ │ ├── ./Java/Maths/NumberOfDigits.java
│ │ ├── ./Java/Maths/PalindromeNumber.java
│ │ ├── ./Java/Maths/ParseInteger.java
│ │ ├── ./Java/Maths/PerfectCube.java
│ │ ├── ./Java/Maths/PerfectNumber.java
│ │ ├── ./Java/Maths/PerfectSquare.java
│ │ ├── ./Java/Maths/PowerOfTwoOrNot.java
│ │ ├── ./Java/Maths/Pow.java
│ │ ├── ./Java/Maths/PowRecursion.java
│ │ ├── ./Java/Maths/PrimeCheck.java
│ │ ├── ./Java/Maths/PrimeFactorization.java
│ │ ├── ./Java/Maths/PythagoreanTriple.java
│ │ ├── ./Java/Maths/SumOfArithmeticSeries.java
│ │ ├── ./Java/Maths/SumOfDigits.java
│ │ └── ./Java/Maths/VampireNumber.java
│ ├── ./Java/MinimizingLateness
│ │ ├── ./Java/MinimizingLateness/lateness_data.txt
│ │ └── ./Java/MinimizingLateness/MinimizingLateness.java
│ ├── ./Java/Misc
│ │ ├── ./Java/Misc/ColorContrastRatio.java
│ │ ├── ./Java/Misc/MedianOfRunningArray.java
│ │ ├── ./Java/Misc/PalindromePrime.java
│ │ ├── ./Java/Misc/RangeInSortedArray.java
│ │ └── ./Java/Misc/WordBoggle.java
│ ├── ./Java/Others
│ │ ├── ./Java/Others/BestFit.java
│ │ ├── ./Java/Others/BrianKernighanAlgorithm.java
│ │ ├── ./Java/Others/CountChar.java
│ │ ├── ./Java/Others/CountWords.java
│ │ ├── ./Java/Others/CRC32.java
│ │ ├── ./Java/Others/CRCAlgorithm.java
│ │ ├── ./Java/Others/Dijkstra.java
│ │ ├── ./Java/Others/EulersFunction.java
│ │ ├── ./Java/Others/FibToN.java
│ │ ├── ./Java/Others/FirstFit.java
│ │ ├── ./Java/Others/FloydTriangle.java
│ │ ├── ./Java/Others/GuassLegendre.java
│ │ ├── ./Java/Others/InsertDeleteInArray.java
│ │ ├── ./Java/Others/KMP.java
│ │ ├── ./Java/Others/KochSnowflake.java
│ │ ├── ./Java/Others/Krishnamurthy.java
│ │ ├── ./Java/Others/LinearCongruentialGenerator.java
│ │ ├── ./Java/Others/LowestBasePalindrome.java
│ │ ├── ./Java/Others/Mandelbrot.java
│ │ ├── ./Java/Others/PasswordGen.java
│ │ ├── ./Java/Others/PerlinNoise.java
│ │ ├── ./Java/Others/QueueUsingTwoStacks.java
│ │ ├── ./Java/Others/RabinKarp.java
│ │ ├── ./Java/Others/RemoveDuplicateFromString.java
│ │ ├── ./Java/Others/RestrictedTowerOfHanoi
│ │ │ ├── ./Java/Others/RestrictedTowerOfHanoi/Main
│ │ │ ├── ./Java/Others/RestrictedTowerOfHanoi/Resources
│ │ │ └── ./Java/Others/RestrictedTowerOfHanoi/Screenshots
│ │ ├── ./Java/Others/ReturnSubsequence.java
│ │ ├── ./Java/Others/ReverseStackUsingRecursion.java
│ │ ├── ./Java/Others/RootPrecision.java
│ │ ├── ./Java/Others/SieveOfEratosthenes.java
│ │ ├── ./Java/Others/SJF.java
│ │ ├── ./Java/Others/SkylineProblem.java
│ │ ├── ./Java/Others/StackPostfixNotation.java
│ │ ├── ./Java/Others/StringMatchFiniteAutomata.java
│ │ ├── ./Java/Others/ThreeSum.java
│ │ ├── ./Java/Others/TopKWords.java
│ │ ├── ./Java/Others/TowerOfHanoi.java
│ │ ├── ./Java/Others/TwoPointers.java
│ │ └── ./Java/Others/WorstFit.java
│ ├── ./Java/ProjectEuler
│ │ ├── ./Java/ProjectEuler/Problem01.java
│ │ ├── ./Java/ProjectEuler/Problem02.java
│ │ ├── ./Java/ProjectEuler/Problem03.java
│ │ ├── ./Java/ProjectEuler/Problem04.java
│ │ ├── ./Java/ProjectEuler/Problem06.java
│ │ ├── ./Java/ProjectEuler/Problem07.java
│ │ ├── ./Java/ProjectEuler/Problem09.java
│ │ ├── ./Java/ProjectEuler/Problem10.java
│ │ └── ./Java/ProjectEuler/Problem12.java
│ ├── ./Java/README.html
│ ├── ./Java/README-ko.html
│ ├── ./Java/README-ko.md
│ ├── ./Java/README.md
│ ├── ./Java/REVIEWER.html
│ ├── ./Java/REVIEWER.md
│ ├── ./Java/Searches
│ │ ├── ./Java/Searches/BinarySearch.java
│ │ ├── ./Java/Searches/InterpolationSearch.java
│ │ ├── ./Java/Searches/IterativeBinarySearch.java
│ │ ├── ./Java/Searches/IterativeTernarySearch.java
│ │ ├── ./Java/Searches/JumpSearch.java
│ │ ├── ./Java/Searches/LinearSearch.java
│ │ ├── ./Java/Searches/PerfectBinarySearch.java
│ │ ├── ./Java/Searches/SaddlebackSearch.java
│ │ ├── ./Java/Searches/SearchAlgorithm.java
│ │ └── ./Java/Searches/TernarySearch.java
│ ├── ./Java/Sorts
│ │ ├── ./Java/Sorts/BitonicSort.java
│ │ ├── ./Java/Sorts/BogoSort.java
│ │ ├── ./Java/Sorts/BubbleSort.java
│ │ ├── ./Java/Sorts/BubbleSortRecursion.java
│ │ ├── ./Java/Sorts/BucketSort.java
│ │ ├── ./Java/Sorts/CocktailShakerSort.java
│ │ ├── ./Java/Sorts/CombSort.java
│ │ ├── ./Java/Sorts/CountingSort.java
│ │ ├── ./Java/Sorts/CycleSort.java
│ │ ├── ./Java/Sorts/GnomeSort.java
│ │ ├── ./Java/Sorts/HeapSort.java
│ │ ├── ./Java/Sorts/InsertionSort.java
│ │ ├── ./Java/Sorts/MergeSort.java
│ │ ├── ./Java/Sorts/PancakeSort.java
│ │ ├── ./Java/Sorts/QuickSort.java
│ │ ├── ./Java/Sorts/RadixSort.java
│ │ ├── ./Java/Sorts/SelectionSort.java
│ │ ├── ./Java/Sorts/ShellSort.java
│ │ ├── ./Java/Sorts/SortAlgorithm.java
│ │ ├── ./Java/Sorts/SortUtils.java
│ │ └── ./Java/Sorts/TimSort.java
│ └── ./Java/strings
│ ├── ./Java/strings/Alphabetical.java
│ ├── ./Java/strings/CharactersSame.java
│ ├── ./Java/strings/CheckAnagrams.java
│ ├── ./Java/strings/HorspoolSearch.java
│ ├── ./Java/strings/Lower.java
│ ├── ./Java/strings/Palindrome.java
│ ├── ./Java/strings/Pangram.java
│ ├── ./Java/strings/ReverseString.java
│ ├── ./Java/strings/Rotation.java
│ └── ./Java/strings/Upper.java
├── ./Javascript
│ ├── ./Javascript/babel.config.js
│ ├── ./Javascript/Backtracking
│ │ ├── ./Javascript/Backtracking/KnightTour.js
│ │ ├── ./Javascript/Backtracking/NQueen.js
│ │ ├── ./Javascript/Backtracking/Sudoku.js
│ │ └── ./Javascript/Backtracking/tests
│ │ └── ./Javascript/Backtracking/tests/NQueen.test.js
│ ├── ./Javascript/Bit-Manipulation
│ │ ├── ./Javascript/Bit-Manipulation/BinaryCountSetBits.js
│ │ ├── ./Javascript/Bit-Manipulation/SetBit.js
│ │ └── ./Javascript/Bit-Manipulation/test
│ │ └── ./Javascript/Bit-Manipulation/test/SetBit.test.js
│ ├── ./Javascript/Cache
│ │ ├── ./Javascript/Cache/LFUCache.js
│ │ └── ./Javascript/Cache/LRUCache.js
│ ├── ./Javascript/Cellular-Automata
│ │ └── ./Javascript/Cellular-Automata/ConwaysGameOfLife.js
│ ├── ./Javascript/Ciphers
│ │ ├── ./Javascript/Ciphers/Atbash.js
│ │ ├── ./Javascript/Ciphers/CaesarsCipher.js
│ │ ├── ./Javascript/Ciphers/KeyFinder.js
│ │ ├── ./Javascript/Ciphers/KeywordShiftedAlphabet.js
│ │ ├── ./Javascript/Ciphers/ROT13.js
│ │ ├── ./Javascript/Ciphers/VigenereCipher.js
│ │ └── ./Javascript/Ciphers/XORCipher.js
│ ├── ./Javascript/Conversions
│ │ ├── ./Javascript/Conversions/ArbitraryBase.js
│ │ ├── ./Javascript/Conversions/BinaryToDecimal.js
│ │ ├── ./Javascript/Conversions/DecimalToBinary.js
│ │ ├── ./Javascript/Conversions/DecimalToHex.js
│ │ ├── ./Javascript/Conversions/DecimalToOctal.js
│ │ ├── ./Javascript/Conversions/HexToDecimal.js
│ │ ├── ./Javascript/Conversions/HexToRGB.js
│ │ ├── ./Javascript/Conversions/OctToDecimal.js
│ │ ├── ./Javascript/Conversions/RgbHsvConversion.js
│ │ ├── ./Javascript/Conversions/RGBToHex.js
│ │ └── ./Javascript/Conversions/RomanToDecimal.js
│ ├── ./Javascript/Data-Structures
│ │ ├── ./Javascript/Data-Structures/Array
│ │ │ └── ./Javascript/Data-Structures/Array/QuickSelect.js
│ │ ├── ./Javascript/Data-Structures/Graph
│ │ │ ├── ./Javascript/Data-Structures/Graph/Graph2.js
│ │ │ └── ./Javascript/Data-Structures/Graph/Graph.js
│ │ ├── ./Javascript/Data-Structures/Heap
│ │ │ ├── ./Javascript/Data-Structures/Heap/MaxHeap.js
│ │ │ └── ./Javascript/Data-Structures/Heap/MinPriorityQueue.js
│ │ ├── ./Javascript/Data-Structures/Linked-List
│ │ │ ├── ./Javascript/Data-Structures/Linked-List/CycleDetection.js
│ │ │ ├── ./Javascript/Data-Structures/Linked-List/DoublyLinkedList.js
│ │ │ ├── ./Javascript/Data-Structures/Linked-List/RotateListRight.js
│ │ │ ├── ./Javascript/Data-Structures/Linked-List/SingleCircularLinkedList.js.js
│ │ │ └── ./Javascript/Data-Structures/Linked-List/SinglyLinkList.js
│ │ ├── ./Javascript/Data-Structures/Queue
│ │ │ ├── ./Javascript/Data-Structures/Queue/CircularQueue.js
│ │ │ ├── ./Javascript/Data-Structures/Queue/Queue.js
│ │ │ └── ./Javascript/Data-Structures/Queue/QueueUsing2Stacks.js
│ │ ├── ./Javascript/Data-Structures/Stack
│ │ │ ├── ./Javascript/Data-Structures/Stack/StackES6.js
│ │ │ └── ./Javascript/Data-Structures/Stack/Stack.js
│ │ ├── ./Javascript/Data-Structures/Tree
│ │ │ ├── ./Javascript/Data-Structures/Tree/AVLTree.js
│ │ │ ├── ./Javascript/Data-Structures/Tree/BinarySearchTree.js
│ │ │ └── ./Javascript/Data-Structures/Tree/Trie.js
│ │ └── ./Javascript/Data-Structures/Vectors
│ │ └── ./Javascript/Data-Structures/Vectors/Vector2.js
│ ├── ./Javascript/DIRECTORY.html
│ ├── ./Javascript/DIRECTORY.md
│ ├── ./Javascript/Dynamic-Programming
│ │ ├── ./Javascript/Dynamic-Programming/ClimbingStairs.js
│ │ ├── ./Javascript/Dynamic-Programming/CoinChange.js
│ │ ├── ./Javascript/Dynamic-Programming/EditDistance.js
│ │ ├── ./Javascript/Dynamic-Programming/FibonacciNumber.js
│ │ ├── ./Javascript/Dynamic-Programming/FindMonthCalendar.js
│ │ ├── ./Javascript/Dynamic-Programming/KadaneAlgo.js
│ │ ├── ./Javascript/Dynamic-Programming/LevenshteinDistance.js
│ │ ├── ./Javascript/Dynamic-Programming/LongestCommonSubsequence.js
│ │ ├── ./Javascript/Dynamic-Programming/LongestIncreasingSubsequence.js
│ │ ├── ./Javascript/Dynamic-Programming/LongestPalindromicSubsequence.js
│ │ ├── ./Javascript/Dynamic-Programming/LongestValidParentheses.js
│ │ ├── ./Javascript/Dynamic-Programming/MaxNonAdjacentSum.js
│ │ ├── ./Javascript/Dynamic-Programming/MinimumCostPath.js
│ │ ├── ./Javascript/Dynamic-Programming/NumberOfSubsetEqualToGivenSum.js
│ │ ├── ./Javascript/Dynamic-Programming/Shuf.js
│ │ ├── ./Javascript/Dynamic-Programming/SieveOfEratosthenes.js
│ │ ├── ./Javascript/Dynamic-Programming/SudokuSolver.js
│ │ ├── ./Javascript/Dynamic-Programming/TrappingRainWater.js
│ │ └── ./Javascript/Dynamic-Programming/ZeroOneKnapsack.js
│ ├── ./Javascript/Geometry
│ │ └── ./Javascript/Geometry/ConvexHullGraham.js
│ ├── ./Javascript/Graphs
│ │ ├── ./Javascript/Graphs/BreadthFirstSearch.js
│ │ ├── ./Javascript/Graphs/BreadthFirstShortestPath.js
│ │ ├── ./Javascript/Graphs/ConnectedComponents.js
│ │ ├── ./Javascript/Graphs/Density.js
│ │ ├── ./Javascript/Graphs/DepthFirstSearchIterative.js
│ │ ├── ./Javascript/Graphs/DepthFirstSearchRecursive.js
│ │ ├── ./Javascript/Graphs/Dijkstra.js
│ │ ├── ./Javascript/Graphs/DijkstraSmallestPath.js
│ │ ├── ./Javascript/Graphs/FloydWarshall.js
│ │ ├── ./Javascript/Graphs/KruskalMST.js
│ │ ├── ./Javascript/Graphs/NodeNeighbors.js
│ │ ├── ./Javascript/Graphs/NumberOfIslands.js
│ │ └── ./Javascript/Graphs/PrimMST.js
│ ├── ./Javascript/Hashes
│ │ ├── ./Javascript/Hashes/SHA1.js
│ │ └── ./Javascript/Hashes/SHA256.js
│ ├── ./Javascript/Linear-Algebra
│ │ ├── ./Javascript/Linear-Algebra/package.json
│ │ ├── ./Javascript/Linear-Algebra/package-lock.json
│ │ ├── ./Javascript/Linear-Algebra/README.html
│ │ ├── ./Javascript/Linear-Algebra/README.md
│ │ ├── ./Javascript/Linear-Algebra/src
│ │ │ └── ./Javascript/Linear-Algebra/src/la_lib.js
│ │ └── ./Javascript/Linear-Algebra/test
│ │ └── ./Javascript/Linear-Algebra/test/test.js
│ ├── ./Javascript/Maths
│ │ ├── ./Javascript/Maths/Abs.js
│ │ ├── ./Javascript/Maths/Area.js
│ │ ├── ./Javascript/Maths/ArmstrongNumber.js
│ │ ├── ./Javascript/Maths/AverageMean.js
│ │ ├── ./Javascript/Maths/AverageMedian.js
│ │ ├── ./Javascript/Maths/BinaryConvert.js
│ │ ├── ./Javascript/Maths/BinaryExponentiationIterative.js
│ │ ├── ./Javascript/Maths/BinaryExponentiationRecursive.js
│ │ ├── ./Javascript/Maths/Coordinate.js
│ │ ├── ./Javascript/Maths/decimalIsolate.js
│ │ ├── ./Javascript/Maths/DegreeToRadian.js
│ │ ├── ./Javascript/Maths/DigitSum.js
│ │ ├── ./Javascript/Maths/EulerMethod.js
│ │ ├── ./Javascript/Maths/EulersTotientFunction.js
│ │ ├── ./Javascript/Maths/EulersTotient.js
│ │ ├── ./Javascript/Maths/Factorial.js
│ │ ├── ./Javascript/Maths/Factors.js
│ │ ├── ./Javascript/Maths/FareyApproximation.js
│ │ ├── ./Javascript/Maths/Fibonacci.js
│ │ ├── ./Javascript/Maths/FindHcf.js
│ │ ├── ./Javascript/Maths/FindLcm.js
│ │ ├── ./Javascript/Maths/GridGet.js
│ │ ├── ./Javascript/Maths/IsDivisible.js
│ │ ├── ./Javascript/Maths/IsEven.js
│ │ ├── ./Javascript/Maths/isOdd.js
│ │ ├── ./Javascript/Maths/Mandelbrot.js
│ │ ├── ./Javascript/Maths/MatrixExponentiationRecursive.js
│ │ ├── ./Javascript/Maths/MatrixMultiplication.js
│ │ ├── ./Javascript/Maths/MeanSquareError.js
│ │ ├── ./Javascript/Maths/ModularBinaryExponentiationRecursive.js
│ │ ├── ./Javascript/Maths/NumberOfDigits.js
│ │ ├── ./Javascript/Maths/Palindrome.js
│ │ ├── ./Javascript/Maths/PascalTriangle.js
│ │ ├── ./Javascript/Maths/PerfectCube.js
│ │ ├── ./Javascript/Maths/PerfectNumber.js
│ │ ├── ./Javascript/Maths/PerfectSquare.js
│ │ ├── ./Javascript/Maths/PermutationAndCombination.js
│ │ ├── ./Javascript/Maths/PiApproximationMonteCarlo.js
│ │ ├── ./Javascript/Maths/Polynomial.js
│ │ ├── ./Javascript/Maths/Pow.js
│ │ ├── ./Javascript/Maths/PrimeCheck.js
│ │ ├── ./Javascript/Maths/PrimeFactors.js
│ │ ├── ./Javascript/Maths/RadianToDegree.js
│ │ ├── ./Javascript/Maths/ReversePolishNotation.js
│ │ ├── ./Javascript/Maths/SieveOfEratosthenes.js
│ │ ├── ./Javascript/Maths/Softmax.js
│ │ ├── ./Javascript/Maths/SquareRoot.js
│ │ ├── ./Javascript/Maths/test
│ │ │ ├── ./Javascript/Maths/test/Abs.test.js
│ │ │ ├── ./Javascript/Maths/test/Area.test.js
│ │ │ ├── ./Javascript/Maths/test/ArmstrongNumber.test.js
│ │ │ ├── ./Javascript/Maths/test/AverageMean.test.js
│ │ │ ├── ./Javascript/Maths/test/AverageMedian.test.js
│ │ │ ├── ./Javascript/Maths/test/BInaryConvert.test.js
│ │ │ ├── ./Javascript/Maths/test/BinaryExponentiationIterative.test.js
│ │ │ ├── ./Javascript/Maths/test/Coordinate.test.js
│ │ │ ├── ./Javascript/Maths/test/DegreeToRadian.test.js
│ │ │ ├── ./Javascript/Maths/test/DigitSum.test.js
│ │ │ ├── ./Javascript/Maths/test/EulersTotientFunction.test.js
│ │ │ ├── ./Javascript/Maths/test/Factorial.test.js
│ │ │ ├── ./Javascript/Maths/test/Factors.test.js
│ │ │ ├── ./Javascript/Maths/test/FareyApproximation.test.js
│ │ │ ├── ./Javascript/Maths/test/Fibonacci.test.js
│ │ │ ├── ./Javascript/Maths/test/FindHcf.test.js
│ │ │ ├── ./Javascript/Maths/test/FindLcm.test.js
│ │ │ ├── ./Javascript/Maths/test/GridGet.test.js
│ │ │ ├── ./Javascript/Maths/test/IsDivisible.test.js
│ │ │ ├── ./Javascript/Maths/test/IsEven.test.js
│ │ │ ├── ./Javascript/Maths/test/MeanSquareError.test.js
│ │ │ ├── ./Javascript/Maths/test/ModularBinaryExponentiationRecursive.test.js
│ │ │ ├── ./Javascript/Maths/test/NumberOfDigits.test.js
│ │ │ ├── ./Javascript/Maths/test/Palindrome.test.js
│ │ │ ├── ./Javascript/Maths/test/PascalTriangle.test.js
│ │ │ ├── ./Javascript/Maths/test/PerfectCube.test.js
│ │ │ ├── ./Javascript/Maths/test/PerfectNumber.test.js
│ │ │ ├── ./Javascript/Maths/test/PerfectSquare.test.js
│ │ │ ├── ./Javascript/Maths/test/PiApproximationMonteCarlo.test.js
│ │ │ ├── ./Javascript/Maths/test/Polynomial.test.js
│ │ │ ├── ./Javascript/Maths/test/Pow.test.js
│ │ │ ├── ./Javascript/Maths/test/PrimeCheck.test.js
│ │ │ ├── ./Javascript/Maths/test/RadianToDegree.test.js
│ │ │ ├── ./Javascript/Maths/test/ReversePolishNotation.test.js
│ │ │ ├── ./Javascript/Maths/test/SieveOfEratosthenes.test.js
│ │ │ ├── ./Javascript/Maths/test/Softmax.test.js
│ │ │ └── ./Javascript/Maths/test/Volume.test.js
│ │ ├── ./Javascript/Maths/Volume.js
│ │ └── ./Javascript/Maths/WhileLoopFactorial.js
│ ├── ./Javascript/Navigation
│ │ ├── ./Javascript/Navigation/Haversine.js
│ │ └── ./Javascript/Navigation/Haversine.test.js
│ ├── ./Javascript/package.json
│ ├── ./Javascript/Project-Euler
│ │ ├── ./Javascript/Project-Euler/Problem013.js
│ │ ├── ./Javascript/Project-Euler/Problem014.js
│ │ ├── ./Javascript/Project-Euler/Problem015.js
│ │ ├── ./Javascript/Project-Euler/Problem020.js
│ │ ├── ./Javascript/Project-Euler/Problem10.js
│ │ ├── ./Javascript/Project-Euler/Problem1.js
│ │ ├── ./Javascript/Project-Euler/Problem2.js
│ │ ├── ./Javascript/Project-Euler/Problem3.js
│ │ ├── ./Javascript/Project-Euler/Problem4.js
│ │ ├── ./Javascript/Project-Euler/Problem5.js
│ │ ├── ./Javascript/Project-Euler/Problem6.js
│ │ ├── ./Javascript/Project-Euler/Problem7.js
│ │ ├── ./Javascript/Project-Euler/Problem9.js
│ │ └── ./Javascript/Project-Euler/test
│ │ └── ./Javascript/Project-Euler/test/Problem10.test.js
│ ├── ./Javascript/README.html
│ ├── ./Javascript/README.md
│ ├── ./Javascript/Recursive
│ │ ├── ./Javascript/Recursive/BinarySearch.js
│ │ ├── ./Javascript/Recursive/EucledianGCD.js
│ │ ├── ./Javascript/Recursive/factorial.js
│ │ ├── ./Javascript/Recursive/FibonacciNumberRecursive.js
│ │ ├── ./Javascript/Recursive/FloodFill.js
│ │ ├── ./Javascript/Recursive/KochSnowflake.js
│ │ ├── ./Javascript/Recursive/Palindrome.js
│ │ └── ./Javascript/Recursive/TowerOfHanoi.js
│ ├── ./Javascript/Search
│ │ ├── ./Javascript/Search/BinarySearch.js
│ │ ├── ./Javascript/Search/ExponentialSearch.js
│ │ ├── ./Javascript/Search/FibonacciSearch.js
│ │ ├── ./Javascript/Search/InterpolationSearch.js
│ │ ├── ./Javascript/Search/JumpSearch.js
│ │ ├── ./Javascript/Search/LinearSearch.js
│ │ ├── ./Javascript/Search/QuickSelectSearch.js
│ │ ├── ./Javascript/Search/StringSearch.js
│ │ ├── ./Javascript/Search/TernarySearch.js
│ │ └── ./Javascript/Search/test
│ │ └── ./Javascript/Search/test/TernarySearch.test.js
│ ├── ./Javascript/Sorts
│ │ ├── ./Javascript/Sorts/BeadSort.js
│ │ ├── ./Javascript/Sorts/BogoSort.js
│ │ ├── ./Javascript/Sorts/BubbleSort.js
│ │ ├── ./Javascript/Sorts/BucketSort.js
│ │ ├── ./Javascript/Sorts/CocktailShakerSort.js
│ │ ├── ./Javascript/Sorts/CombSort.js
│ │ ├── ./Javascript/Sorts/CountingSort.js
│ │ ├── ./Javascript/Sorts/CycleSort.js
│ │ ├── ./Javascript/Sorts/FindSecondLargestElement.js
│ │ ├── ./Javascript/Sorts/FlashSort.js
│ │ ├── ./Javascript/Sorts/GnomeSort.js
│ │ ├── ./Javascript/Sorts/HeapSort.js
│ │ ├── ./Javascript/Sorts/HeapSortV2.js
│ │ ├── ./Javascript/Sorts/InsertionSort.js
│ │ ├── ./Javascript/Sorts/IntroSort.js
│ │ ├── ./Javascript/Sorts/MergeSort.js
│ │ ├── ./Javascript/Sorts/OddEvenSort.js
│ │ ├── ./Javascript/Sorts/PigeonHoleSort.js
│ │ ├── ./Javascript/Sorts/QuickSort.js
│ │ ├── ./Javascript/Sorts/RadixSort.js
│ │ ├── ./Javascript/Sorts/SelectionSort.js
│ │ ├── ./Javascript/Sorts/SelectionSort.test.js
│ │ ├── ./Javascript/Sorts/ShellSort.js
│ │ ├── ./Javascript/Sorts/TimSort.js
│ │ ├── ./Javascript/Sorts/TopologicalSort.js
│ │ └── ./Javascript/Sorts/WiggleSort.js
│ ├── ./Javascript/String
│ │ ├── ./Javascript/String/CheckAnagram.js
│ │ ├── ./Javascript/String/CheckPalindrome.js
│ │ ├── ./Javascript/String/CheckPangram.js
│ │ ├── ./Javascript/String/CheckRearrangePalindrome.js
│ │ ├── ./Javascript/String/CheckVowels.js
│ │ ├── ./Javascript/String/CheckVowels.test.js
│ │ ├── ./Javascript/String/CheckWordOccurrence.js
│ │ ├── ./Javascript/String/CheckWordOcurrence.test.js
│ │ ├── ./Javascript/String/CreatePermutations.js
│ │ ├── ./Javascript/String/FormatPhoneNumber.js
│ │ ├── ./Javascript/String/FormatPhoneNumber.test.js
│ │ ├── ./Javascript/String/GenerateGUID.js
│ │ ├── ./Javascript/String/HammingDistance.js
│ │ ├── ./Javascript/String/KMPPatternSearching.js
│ │ ├── ./Javascript/String/LevenshteinDistance.js
│ │ ├── ./Javascript/String/LevenshteinDistance.test.js
│ │ ├── ./Javascript/String/MaxCharacter.js
│ │ ├── ./Javascript/String/MaxCharacter.test.js
│ │ ├── ./Javascript/String/PatternMatching.js
│ │ ├── ./Javascript/String/PermutateString.js
│ │ ├── ./Javascript/String/PermutateString.test.js
│ │ ├── ./Javascript/String/ReverseString.js
│ │ ├── ./Javascript/String/ReverseWords.js
│ │ ├── ./Javascript/String/test
│ │ │ ├── ./Javascript/String/test/CheckAnagram.test.js
│ │ │ ├── ./Javascript/String/test/CheckPalindrome.test.js
│ │ │ ├── ./Javascript/String/test/CheckPangram.test.js
│ │ │ ├── ./Javascript/String/test/CreatePermutations.test.js
│ │ │ ├── ./Javascript/String/test/HammingDistance.test.js
│ │ │ ├── ./Javascript/String/test/KMPPatternSearching.test.js
│ │ │ ├── ./Javascript/String/test/PatternMatching.test.js
│ │ │ ├── ./Javascript/String/test/ReverseString.test.js
│ │ │ ├── ./Javascript/String/test/ReverseWords.test.js
│ │ │ └── ./Javascript/String/test/ValidateEmail.test.js
│ │ └── ./Javascript/String/ValidateEmail.js
│ ├── ./Javascript/Timing-Functions
│ │ ├── ./Javascript/Timing-Functions/GetMonthDays.js
│ │ ├── ./Javascript/Timing-Functions/GetMonthDays.test.js
│ │ └── ./Javascript/Timing-Functions/IntervalTimer.js
│ ├── ./Javascript/Trees
│ │ ├── ./Javascript/Trees/BreadthFirstTreeTraversal.js
│ │ └── ./Javascript/Trees/DepthFirstSearch.js
│ └── ./Javascript/Web-Programming
│ ├── ./Javascript/Web-Programming/OpenWeatherMaps.js
│ └── ./Javascript/Web-Programming/StockPrice.js
├── ./Julia
│ ├── ./Julia/docs
│ │ ├── ./Julia/docs/make.jl
│ │ ├── ./Julia/docs/Project.toml
│ │ └── ./Julia/docs/src
│ │ ├── ./Julia/docs/src/index.html
│ │ └── ./Julia/docs/src/index.md
│ ├── ./Julia/Project.toml
│ ├── ./Julia/README.html
│ ├── ./Julia/README.md
│ ├── ./Julia/src
│ │ ├── ./Julia/src/basic
│ │ │ └── ./Julia/src/basic/prefix_sum.jl
│ │ ├── ./Julia/src/conversions
│ │ │ ├── ./Julia/src/conversions/temparature_conversion.jl
│ │ │ └── ./Julia/src/conversions/weight_conversion.jl
│ │ ├── ./Julia/src/data_structures
│ │ │ ├── ./Julia/src/data_structures/binary_tree
│ │ │ └── ./Julia/src/data_structures/disjoint_set
│ │ ├── ./Julia/src/knapsack
│ │ │ ├── ./Julia/src/knapsack/dynamic_programming.jl
│ │ │ └── ./Julia/src/knapsack/greedy_algorithm.jl
│ │ ├── ./Julia/src/math
│ │ │ ├── ./Julia/src/math/abs.jl
│ │ │ ├── ./Julia/src/math/area.jl
│ │ │ ├── ./Julia/src/math/armstrong_number.jl
│ │ │ ├── ./Julia/src/math/average_mean.jl
│ │ │ ├── ./Julia/src/math/average_median.jl
│ │ │ ├── ./Julia/src/math/average_mode.jl
│ │ │ ├── ./Julia/src/math/ceil_floor.jl
│ │ │ ├── ./Julia/src/math/collatz_sequence.jl
│ │ │ ├── ./Julia/src/math/combination.jl
│ │ │ ├── ./Julia/src/math/euler_method.jl
│ │ │ ├── ./Julia/src/math/factorial.jl
│ │ │ ├── ./Julia/src/math/krishnamurthy_number.jl
│ │ │ ├── ./Julia/src/math/line_length.jl
│ │ │ ├── ./Julia/src/math/monte_carlo_integration.jl
│ │ │ ├── ./Julia/src/math/perfect_cube.jl
│ │ │ ├── ./Julia/src/math/perfect_number.jl
│ │ │ ├── ./Julia/src/math/perfect_square.jl
│ │ │ ├── ./Julia/src/math/permutation.jl
│ │ │ ├── ./Julia/src/math/prime_check.jl
│ │ │ ├── ./Julia/src/math/prime_factors.jl
│ │ │ ├── ./Julia/src/math/sieve_of_eratosthenes.jl
│ │ │ ├── ./Julia/src/math/sir_model.jl
│ │ │ ├── ./Julia/src/math/sum_of_arithmetic_series.jl
│ │ │ ├── ./Julia/src/math/sum_of_geometric_progression.jl
│ │ │ ├── ./Julia/src/math/verlet.jl
│ │ │ └── ./Julia/src/math/volume.jl
│ │ ├── ./Julia/src/matrix
│ │ │ ├── ./Julia/src/matrix/determinant.jl
│ │ │ ├── ./Julia/src/matrix/lu_decompose.jl
│ │ │ └── ./Julia/src/matrix/rotation-matrix.jl
│ │ ├── ./Julia/src/project-rosalind
│ │ │ ├── ./Julia/src/project-rosalind/count_nucleotide.jl
│ │ │ ├── ./Julia/src/project-rosalind/dna2rna.jl
│ │ │ └── ./Julia/src/project-rosalind/reverse_complement.jl
│ │ ├── ./Julia/src/scheduling
│ │ │ └── ./Julia/src/scheduling/fcfs.jl
│ │ ├── ./Julia/src/searches
│ │ │ ├── ./Julia/src/searches/binary_search.jl
│ │ │ ├── ./Julia/src/searches/exponential_search.jl
│ │ │ ├── ./Julia/src/searches/interpolation_search.jl
│ │ │ ├── ./Julia/src/searches/jump_search.jl
│ │ │ └── ./Julia/src/searches/linear_search.jl
│ │ ├── ./Julia/src/sorts
│ │ │ ├── ./Julia/src/sorts/bubble_sort.jl
│ │ │ ├── ./Julia/src/sorts/counting_sort.jl
│ │ │ ├── ./Julia/src/sorts/exchange_sort.jl
│ │ │ ├── ./Julia/src/sorts/insertion_sort.jl
│ │ │ ├── ./Julia/src/sorts/merge_sort.jl
│ │ │ ├── ./Julia/src/sorts/quick_sort.jl
│ │ │ └── ./Julia/src/sorts/selection_sort.jl
│ │ ├── ./Julia/src/statistics
│ │ │ ├── ./Julia/src/statistics/ordinary_least_squares.jl
│ │ │ ├── ./Julia/src/statistics/pearson_correlation.jl
│ │ │ └── ./Julia/src/statistics/variance.jl
│ │ ├── ./Julia/src/strings
│ │ │ ├── ./Julia/src/strings/detect_anagrams.jl
│ │ │ ├── ./Julia/src/strings/is_palindrome.jl
│ │ │ └── ./Julia/src/strings/kmp_substring_search.jl
│ │ └── ./Julia/src/TheAlgorithms.jl
│ └── ./Julia/test
│ ├── ./Julia/test/basic.jl
│ ├── ./Julia/test/conversions.jl
│ ├── ./Julia/test/data_structures.jl
│ ├── ./Julia/test/knapsack.jl
│ ├── ./Julia/test/math.jl
│ ├── ./Julia/test/matrix.jl
│ ├── ./Julia/test/project-rosalind.jl
│ ├── ./Julia/test/Project.toml
│ ├── ./Julia/test/runtests.jl
│ ├── ./Julia/test/scheduling.jl
│ ├── ./Julia/test/searches.jl
│ ├── ./Julia/test/sorts.jl
│ ├── ./Julia/test/statistics.jl
│ └── ./Julia/test/strings.jl
├── ./Jupyter
│ ├── ./Jupyter/assets
│ │ └── ./Jupyter/assets/images
│ │ ├── ./Jupyter/assets/images/clone.png
│ │ ├── ./Jupyter/assets/images/compare-and-pull.png
│ │ ├── ./Jupyter/assets/images/fork.png
│ │ ├── ./Jupyter/assets/images/git-status.png
│ │ └── ./Jupyter/assets/images/url.JPG
│ ├── ./Jupyter/Automaton
│ │ ├── ./Jupyter/Automaton/Netflix_Scrapper.ipynb
│ │ ├── ./Jupyter/Automaton/Pushdown_Automata_Implementation.ipynb
│ │ └── ./Jupyter/Automaton/ScrapNewsfromIndiaToday.ipynb
│ ├── ./Jupyter/Contributing.html
│ ├── ./Jupyter/Contributing.md
│ ├── ./Jupyter/DIRECTORY.html
│ ├── ./Jupyter/DIRECTORY.md
│ ├── ./Jupyter/machine_learning
│ │ ├── ./Jupyter/machine_learning/ARIMA
│ │ │ ├── ./Jupyter/machine_learning/ARIMA/ARIMA with pyramid.ipynb
│ │ │ └── ./Jupyter/machine_learning/ARIMA/data
│ │ ├── ./Jupyter/machine_learning/Associative Mining
│ │ │ ├── ./Jupyter/machine_learning/Associative Mining/Association.ipynb
│ │ │ ├── ./Jupyter/machine_learning/Associative Mining/grocery_data.csv
│ │ │ └── ./Jupyter/machine_learning/Associative Mining/transformed_data.csv
│ │ ├── ./Jupyter/machine_learning/Basics of tensorflow
│ │ │ └── ./Jupyter/machine_learning/Basics of tensorflow/Basic of TensorFlow.ipynb
│ │ ├── ./Jupyter/machine_learning/Cosine-Similarity
│ │ │ └── ./Jupyter/machine_learning/Cosine-Similarity/Similarity.ipynb
│ │ ├── ./Jupyter/machine_learning/dbscan
│ │ │ ├── ./Jupyter/machine_learning/dbscan/dbscan.ipynb
│ │ │ └── ./Jupyter/machine_learning/dbscan/dbscan.py
│ │ ├── ./Jupyter/machine_learning/Decision tree
│ │ │ └── ./Jupyter/machine_learning/Decision tree/Decision_Tree.ipynb
│ │ ├── ./Jupyter/machine_learning/Decision Tree regression with k-fold cross validation
│ │ │ └── ./Jupyter/machine_learning/Decision Tree regression with k-fold cross validation/2019.csv
│ │ ├── ./Jupyter/machine_learning/Fundamentals of python
│ │ │ └── ./Jupyter/machine_learning/Fundamentals of python/Python basics.ipynb
│ │ ├── ./Jupyter/machine_learning/Linear_Regression
│ │ │ └── ./Jupyter/machine_learning/Linear_Regression/LinearRegression.ipynb
│ │ ├── ./Jupyter/machine_learning/Matplotlib
│ │ ├── ./Jupyter/machine_learning/Movie_recommendation_system
│ │ │ └── ./Jupyter/machine_learning/Movie_recommendation_system/Movie_Recommendation_System.ipynb
│ │ ├── ./Jupyter/machine_learning/Naive_Bayes
│ │ │ └── ./Jupyter/machine_learning/Naive_Bayes/naive_bayes.ipynb
│ │ ├── ./Jupyter/machine_learning/Naive Bayes Classification
│ │ │ ├── ./Jupyter/machine_learning/Naive Bayes Classification/Customer_Behaviour.csv
│ │ │ └── ./Jupyter/machine_learning/Naive Bayes Classification/Naive_Bayes_Classification.ipynb
│ │ ├── ./Jupyter/machine_learning/Natural language processing
│ │ │ ├── ./Jupyter/machine_learning/Natural language processing/intents.json
│ │ │ └── ./Jupyter/machine_learning/Natural language processing/Movie_recommendation_Sentance_Embedding.ipynb
│ │ ├── ./Jupyter/machine_learning/Numpy
│ │ │ └── ./Jupyter/machine_learning/Numpy/Fundamentals of Numpy.ipynb
│ │ ├── ./Jupyter/machine_learning/Pandas
│ │ │ └── ./Jupyter/machine_learning/Pandas/Pandas.ipynb
│ │ ├── ./Jupyter/machine_learning/Prophet
│ │ │ └── ./Jupyter/machine_learning/Prophet/data
│ │ ├── ./Jupyter/machine_learning/random_forest_classification
│ │ │ ├── ./Jupyter/machine_learning/random_forest_classification/__pycache__
│ │ │ ├── ./Jupyter/machine_learning/random_forest_classification/random_forest_classification.py
│ │ │ ├── ./Jupyter/machine_learning/random_forest_classification/random_forest_classifier.ipynb
│ │ │ └── ./Jupyter/machine_learning/random_forest_classification/Social_Network_Ads.csv
│ │ ├── ./Jupyter/machine_learning/random_forest_regression
│ │ │ ├── ./Jupyter/machine_learning/random_forest_regression/Position_Salaries.csv
│ │ │ ├── ./Jupyter/machine_learning/random_forest_regression/__pycache__
│ │ │ ├── ./Jupyter/machine_learning/random_forest_regression/random_forest_regression.ipynb
│ │ │ └── ./Jupyter/machine_learning/random_forest_regression/random_forest_regression.py
│ │ ├── ./Jupyter/machine_learning/Reuters_one_vs_rest_classifier
│ │ ├── ./Jupyter/machine_learning/Scikit-learn
│ │ │ └── ./Jupyter/machine_learning/Scikit-learn/Scikit-learn.ipynb
│ │ └── ./Jupyter/machine_learning/Support_Vector_Machine
│ ├── ./Jupyter/neural_network
│ │ ├── ./Jupyter/neural_network/02-imdb-binary-classification.ipynb
│ │ ├── ./Jupyter/neural_network/A-simple-GAN.ipynb
│ │ ├── ./Jupyter/neural_network/autoencoder.ipynb
│ │ ├── ./Jupyter/neural_network/CNN-using keras.ipynb
│ │ ├── ./Jupyter/neural_network/fully_connected_neural_network.ipynb
│ │ ├── ./Jupyter/neural_network/GANs-PyTorch-Vanilla-LS-DC
│ │ │ ├── ./Jupyter/neural_network/GANs-PyTorch-Vanilla-LS-DC/gan-checks-tf.npz
│ │ │ ├── ./Jupyter/neural_network/GANs-PyTorch-Vanilla-LS-DC/gan_outputs_pytorch.png
│ │ │ ├── ./Jupyter/neural_network/GANs-PyTorch-Vanilla-LS-DC/README.html
│ │ │ └── ./Jupyter/neural_network/GANs-PyTorch-Vanilla-LS-DC/README.md
│ │ ├── ./Jupyter/neural_network/Logistic_Regression.ipynb
│ │ ├── ./Jupyter/neural_network/Neural_network_Mnist_Dataset.ipynb
│ │ ├── ./Jupyter/neural_network/qlearning.ipynb
│ │ ├── ./Jupyter/neural_network/RNN
│ │ │ └── ./Jupyter/neural_network/RNN/Google_test.csv
│ │ └── ./Jupyter/neural_network/Sequence Labelling with a BiLSTM in PyTorch.ipynb
│ ├── ./Jupyter/numerical_methods
│ │ ├── ./Jupyter/numerical_methods/euler_method_for_the_Cauchy_problem.ipynb
│ │ ├── ./Jupyter/numerical_methods/newton_forward_divided_difference_formula.ipynb
│ │ ├── ./Jupyter/numerical_methods/the_rectangular_method.ipynb
│ │ ├── ./Jupyter/numerical_methods/the_Simpson’s_method.ipynb
│ │ └── ./Jupyter/numerical_methods/the_trapezium_method.ipynb
│ ├── ./Jupyter/other
│ │ ├── ./Jupyter/other/clothing_detection.ipynb
│ │ └── ./Jupyter/other/Simplex_standard.ipynb
│ ├── ./Jupyter/README.html
│ ├── ./Jupyter/README.md
│ └── ./Jupyter/requirements.txt
├── ./Kotlin
│ ├── ./Kotlin/build.gradle
│ ├── ./Kotlin/DIRECTORY.html
│ ├── ./Kotlin/DIRECTORY.md
│ ├── ./Kotlin/gradle
│ │ └── ./Kotlin/gradle/wrapper
│ │ ├── ./Kotlin/gradle/wrapper/gradle-wrapper.jar
│ │ └── ./Kotlin/gradle/wrapper/gradle-wrapper.properties
│ ├── ./Kotlin/gradle.properties
│ ├── ./Kotlin/gradlew
│ ├── ./Kotlin/gradlew.bat
│ ├── ./Kotlin/README.html
│ ├── ./Kotlin/README.md
│ ├── ./Kotlin/settings.gradle
│ └── ./Kotlin/src
│ ├── ./Kotlin/src/main
│ │ └── ./Kotlin/src/main/kotlin
│ └── ./Kotlin/src/test
│ └── ./Kotlin/src/test/kotlin
├── ./MATLAB-Octave
│ ├── ./MATLAB-Octave/algorithms
│ │ ├── ./MATLAB-Octave/algorithms/arithmetic_analysis
│ │ │ ├── ./MATLAB-Octave/algorithms/arithmetic_analysis/bisection.m
│ │ │ ├── ./MATLAB-Octave/algorithms/arithmetic_analysis/false_position.m
│ │ │ ├── ./MATLAB-Octave/algorithms/arithmetic_analysis/newton.m
│ │ │ └── ./MATLAB-Octave/algorithms/arithmetic_analysis/secant.m
│ │ ├── ./MATLAB-Octave/algorithms/crypto
│ │ │ └── ./MATLAB-Octave/algorithms/crypto/sdbm-hash
│ │ ├── ./MATLAB-Octave/algorithms/Divisibility_of_integers
│ │ │ └── ./MATLAB-Octave/algorithms/Divisibility_of_integers/multiple.m
│ │ ├── ./MATLAB-Octave/algorithms/Genetic-Algorithm
│ │ │ └── ./MATLAB-Octave/algorithms/Genetic-Algorithm/Minimization of polynomial function
│ │ ├── ./MATLAB-Octave/algorithms/ImageProcessing
│ │ │ ├── ./MATLAB-Octave/algorithms/ImageProcessing/LSB based Image Steganography
│ │ │ └── ./MATLAB-Octave/algorithms/ImageProcessing/Nearest Neighbhor Interpolation
│ │ ├── ./MATLAB-Octave/algorithms/machine_learning
│ │ │ ├── ./MATLAB-Octave/algorithms/machine_learning/Activation Functions
│ │ │ ├── ./MATLAB-Octave/algorithms/machine_learning/Gradient-Descent
│ │ │ ├── ./MATLAB-Octave/algorithms/machine_learning/kmeans
│ │ │ ├── ./MATLAB-Octave/algorithms/machine_learning/Linear-Regression
│ │ │ ├── ./MATLAB-Octave/algorithms/machine_learning/Logistic-Regression
│ │ │ └── ./MATLAB-Octave/algorithms/machine_learning/Nearest-Neighbor
│ │ ├── ./MATLAB-Octave/algorithms/maths
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/euclidean_distance.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/fibonacci_sequence.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/find_factorial.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/highest_common_factor.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/is_armstrong.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/jaccard_similarity.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/lcm.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/linear_diophantine_eqn.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/prime_check.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/prime_factorial.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/shreeDharacharyaFormula.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/sum_of_digits.m
│ │ │ ├── ./MATLAB-Octave/algorithms/maths/to_polar.m
│ │ │ └── ./MATLAB-Octave/algorithms/maths/twos_complement_of_binary.m
│ │ ├── ./MATLAB-Octave/algorithms/other
│ │ │ └── ./MATLAB-Octave/algorithms/other/tic_tac_toe.m
│ │ ├── ./MATLAB-Octave/algorithms/Particle_Swarm_Optimization
│ │ │ └── ./MATLAB-Octave/algorithms/Particle_Swarm_Optimization/Polynomial Minimization
│ │ ├── ./MATLAB-Octave/algorithms/Searching
│ │ │ ├── ./MATLAB-Octave/algorithms/Searching/binary_search.m
│ │ │ ├── ./MATLAB-Octave/algorithms/Searching/jump_search.m
│ │ │ ├── ./MATLAB-Octave/algorithms/Searching/linear_search.m
│ │ │ ├── ./MATLAB-Octave/algorithms/Searching/random_search.m
│ │ │ └── ./MATLAB-Octave/algorithms/Searching/ternarySearch.m
│ │ ├── ./MATLAB-Octave/algorithms/Sieve_of_Eratosthenes
│ │ │ └── ./MATLAB-Octave/algorithms/Sieve_of_Eratosthenes/sieveER.m
│ │ ├── ./MATLAB-Octave/algorithms/sorting
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/bubble_sort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/cocktail_sort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/comb_sort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/counting_sort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/gnome_sort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/heap_sort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/insertion_sort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/merge_sort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/permutationSort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/quick_sort.m
│ │ │ ├── ./MATLAB-Octave/algorithms/sorting/select_sort.m
│ │ │ └── ./MATLAB-Octave/algorithms/sorting/shell_sort.m
│ │ └── ./MATLAB-Octave/algorithms/Strings
│ │ └── ./MATLAB-Octave/algorithms/Strings/isPalindrome.m
│ ├── ./MATLAB-Octave/DIRECTORY.html
│ ├── ./MATLAB-Octave/DIRECTORY.md
│ ├── ./MATLAB-Octave/image-processing
│ │ └── ./MATLAB-Octave/image-processing/Blob-detection-using-Matlab
│ │ ├── ./MATLAB-Octave/image-processing/Blob-detection-using-Matlab/assets
│ │ ├── ./MATLAB-Octave/image-processing/Blob-detection-using-Matlab/blobDetection.m
│ │ ├── ./MATLAB-Octave/image-processing/Blob-detection-using-Matlab/blob.slx
│ │ ├── ./MATLAB-Octave/image-processing/Blob-detection-using-Matlab/BlobUsingVideo.m
│ │ ├── ./MATLAB-Octave/image-processing/Blob-detection-using-Matlab/README.html
│ │ └── ./MATLAB-Octave/image-processing/Blob-detection-using-Matlab/README.md
│ ├── ./MATLAB-Octave/matlab_for_beginners
│ │ ├── ./MATLAB-Octave/matlab_for_beginners/matlab_introduction.html
│ │ ├── ./MATLAB-Octave/matlab_for_beginners/matlab_introduction.md
│ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/add.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/array.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/comment.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/continuation.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/equal_add.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/equal.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/formatted_output.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/individual_eL_add.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/intr_math_fun.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/make_graph.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/math.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/nam_var.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/print.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/README.html
│ │ │ └── ./MATLAB-Octave/matlab_for_beginners/part_1(learn_basic_programing)/README.md
│ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/program1.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/program2.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/program3.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/program4.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/program5.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/program6.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/program7.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/README.html
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/README.md
│ │ │ └── ./MATLAB-Octave/matlab_for_beginners/part_2(basic_looping)/wh_loop.m
│ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_3(basic_branching)
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_3(basic_branching)/program1.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_3(basic_branching)/program2.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_3(basic_branching)/program3.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_3(basic_branching)/program4.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_3(basic_branching)/README.html
│ │ │ └── ./MATLAB-Octave/matlab_for_beginners/part_3(basic_branching)/README.md
│ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program10.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program11.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program12.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program1.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program2.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program3.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program4.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program5.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program6.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program7.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program8.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/program9.m
│ │ │ ├── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/README.html
│ │ │ └── ./MATLAB-Octave/matlab_for_beginners/part_4(array_nd_matrix)/README.md
│ │ ├── ./MATLAB-Octave/matlab_for_beginners/README.html
│ │ └── ./MATLAB-Octave/matlab_for_beginners/README.md
│ ├── ./MATLAB-Octave/project-euler
│ │ ├── ./MATLAB-Octave/project-euler/Problem1
│ │ │ ├── ./MATLAB-Octave/project-euler/Problem1/multiple.m
│ │ │ └── ./MATLAB-Octave/project-euler/Problem1/solv.m
│ │ ├── ./MATLAB-Octave/project-euler/Problem2
│ │ │ ├── ./MATLAB-Octave/project-euler/Problem2/fib.m
│ │ │ └── ./MATLAB-Octave/project-euler/Problem2/solv.m
│ │ ├── ./MATLAB-Octave/project-euler/Problem3
│ │ │ ├── ./MATLAB-Octave/project-euler/Problem3/isPrime.m
│ │ │ ├── ./MATLAB-Octave/project-euler/Problem3/myResult.mat
│ │ │ ├── ./MATLAB-Octave/project-euler/Problem3/pfz.m
│ │ │ └── ./MATLAB-Octave/project-euler/Problem3/solv.m
│ │ └── ./MATLAB-Octave/project-euler/Problem4
│ │ ├── ./MATLAB-Octave/project-euler/Problem4/isPalindromeNumber.m
│ │ └── ./MATLAB-Octave/project-euler/Problem4/solv.m
│ ├── ./MATLAB-Octave/README.html
│ └── ./MATLAB-Octave/README.md
├── ./OCaml
│ ├── ./OCaml/DIRECTORY.html
│ ├── ./OCaml/DIRECTORY.md
│ ├── ./OCaml/README.html
│ ├── ./OCaml/README.md
│ ├── ./OCaml/searches
│ │ └── ./OCaml/searches/linear_search.ml
│ └── ./OCaml/Sorts
│ └── ./OCaml/Sorts/quicksort.ml
├── ./PHP
│ ├── ./PHP/ciphers
│ │ ├── ./PHP/ciphers/caesarCipher.php
│ │ └── ./PHP/ciphers/XORCipher.php
│ ├── ./PHP/composer.json
│ ├── ./PHP/Conversions
│ │ ├── ./PHP/Conversions/BinaryToDecimal.php
│ │ ├── ./PHP/Conversions/HexadecimalToDecimal.php
│ │ └── ./PHP/Conversions/OctalToDecimal.php
│ ├── ./PHP/DIRECTORY.html
│ ├── ./PHP/DIRECTORY.md
│ ├── ./PHP/Maths
│ │ ├── ./PHP/Maths/AbsoluteMax.php
│ │ ├── ./PHP/Maths/AbsoluteMin.php
│ │ ├── ./PHP/Maths/CheckPrime.php
│ │ ├── ./PHP/Maths/Factorial.php
│ │ ├── ./PHP/Maths/FastExponentiation.php
│ │ ├── ./PHP/Maths/Fibonacci.php
│ │ └── ./PHP/Maths/PerfectSquare.php
│ ├── ./PHP/README.html
│ ├── ./PHP/README.md
│ ├── ./PHP/searches
│ │ ├── ./PHP/searches/binary_search.php
│ │ ├── ./PHP/searches/linear_search.php
│ │ ├── ./PHP/searches/lower_bound.php
│ │ └── ./PHP/searches/upper_bound.php
│ ├── ./PHP/sorting
│ │ ├── ./PHP/sorting/bubbleSort.php
│ │ ├── ./PHP/sorting/countSort.php
│ │ ├── ./PHP/sorting/insertionSort.php
│ │ ├── ./PHP/sorting/mergeSort.php
│ │ ├── ./PHP/sorting/radixSort.php
│ │ └── ./PHP/sorting/selectionSort.php
│ ├── ./PHP/String
│ │ ├── ./PHP/String/CheckAnagram.php
│ │ ├── ./PHP/String/CheckPalindrome.php
│ │ ├── ./PHP/String/CountVowels.php
│ │ ├── ./PHP/String/EditDistance.php
│ │ ├── ./PHP/String/MaxCharacter.php
│ │ ├── ./PHP/String/ReverseString.php
│ │ └── ./PHP/String/ReverseWords.php
│ └── ./PHP/tests
│ ├── ./PHP/tests/CiphersTest.php
│ ├── ./PHP/tests/CipherTest.php
│ ├── ./PHP/tests/ConversionsTest.php
│ ├── ./PHP/tests/MathTest.php
│ ├── ./PHP/tests/sorting
│ │ └── ./PHP/tests/sorting/countSortTest.php
│ └── ./PHP/tests/StringTest.php
├── ./Python
│ ├── ./Python/arithmetic_analysis
│ │ ├── ./Python/arithmetic_analysis/bisection.py
│ │ ├── ./Python/arithmetic_analysis/gaussian_elimination.py
│ │ ├── ./Python/arithmetic_analysis/image_data
│ │ │ ├── ./Python/arithmetic_analysis/image_data/2D_problems_1.jpg
│ │ │ ├── ./Python/arithmetic_analysis/image_data/2D_problems.jpg
│ │ │ └── ./Python/arithmetic_analysis/image_data/__init__.py
│ │ ├── ./Python/arithmetic_analysis/__init__.py
│ │ ├── ./Python/arithmetic_analysis/in_static_equilibrium.py
│ │ ├── ./Python/arithmetic_analysis/intersection.py
│ │ ├── ./Python/arithmetic_analysis/lu_decomposition.py
│ │ ├── ./Python/arithmetic_analysis/newton_forward_interpolation.py
│ │ ├── ./Python/arithmetic_analysis/newton_method.py
│ │ ├── ./Python/arithmetic_analysis/newton_raphson.py
│ │ └── ./Python/arithmetic_analysis/secant_method.py
│ ├── ./Python/backtracking
│ │ ├── ./Python/backtracking/all_combinations.py
│ │ ├── ./Python/backtracking/all_permutations.py
│ │ ├── ./Python/backtracking/all_subsequences.py
│ │ ├── ./Python/backtracking/coloring.py
│ │ ├── ./Python/backtracking/hamiltonian_cycle.py
│ │ ├── ./Python/backtracking/__init__.py
│ │ ├── ./Python/backtracking/knight_tour.py
│ │ ├── ./Python/backtracking/minimax.py
│ │ ├── ./Python/backtracking/n_queens_math.py
│ │ ├── ./Python/backtracking/n_queens.py
│ │ ├── ./Python/backtracking/rat_in_maze.py
│ │ ├── ./Python/backtracking/sudoku.py
│ │ └── ./Python/backtracking/sum_of_subsets.py
│ ├── ./Python/bit_manipulation
│ │ ├── ./Python/bit_manipulation/binary_and_operator.py
│ │ ├── ./Python/bit_manipulation/binary_count_setbits.py
│ │ ├── ./Python/bit_manipulation/binary_count_trailing_zeros.py
│ │ ├── ./Python/bit_manipulation/binary_or_operator.py
│ │ ├── ./Python/bit_manipulation/binary_shifts.py
│ │ ├── ./Python/bit_manipulation/binary_twos_complement.py
│ │ ├── ./Python/bit_manipulation/binary_xor_operator.py
│ │ ├── ./Python/bit_manipulation/count_number_of_one_bits.py
│ │ ├── ./Python/bit_manipulation/__init__.py
│ │ ├── ./Python/bit_manipulation/README.html
│ │ ├── ./Python/bit_manipulation/README.md
│ │ ├── ./Python/bit_manipulation/reverse_bits.py
│ │ └── ./Python/bit_manipulation/single_bit_manipulation_operations.py
│ ├── ./Python/blockchain
│ │ ├── ./Python/blockchain/chinese_remainder_theorem.py
│ │ ├── ./Python/blockchain/diophantine_equation.py
│ │ ├── ./Python/blockchain/__init__.py
│ │ └── ./Python/blockchain/modular_division.py
│ ├── ./Python/boolean_algebra
│ │ ├── ./Python/boolean_algebra/__init__.py
│ │ └── ./Python/boolean_algebra/quine_mc_cluskey.py
│ ├── ./Python/cellular_automata
│ │ ├── ./Python/cellular_automata/conways_game_of_life.py
│ │ ├── ./Python/cellular_automata/game_of_life.py
│ │ ├── ./Python/cellular_automata/__init__.py
│ │ ├── ./Python/cellular_automata/one_dimensional.py
│ │ ├── ./Python/cellular_automata/README.html
│ │ └── ./Python/cellular_automata/README.md
│ ├── ./Python/ciphers
│ │ ├── ./Python/ciphers/a1z26.py
│ │ ├── ./Python/ciphers/affine_cipher.py
│ │ ├── ./Python/ciphers/atbash.py
│ │ ├── ./Python/ciphers/base16.py
│ │ ├── ./Python/ciphers/base32.py
│ │ ├── ./Python/ciphers/base64_encoding.py
│ │ ├── ./Python/ciphers/base85.py
│ │ ├── ./Python/ciphers/beaufort_cipher.py
│ │ ├── ./Python/ciphers/brute_force_caesar_cipher.py
│ │ ├── ./Python/ciphers/caesar_cipher.py
│ │ ├── ./Python/ciphers/cryptomath_module.py
│ │ ├── ./Python/ciphers/decrypt_caesar_with_chi_squared.py
│ │ ├── ./Python/ciphers/deterministic_miller_rabin.py
│ │ ├── ./Python/ciphers/diffie_hellman.py
│ │ ├── ./Python/ciphers/diffie.py
│ │ ├── ./Python/ciphers/elgamal_key_generator.py
│ │ ├── ./Python/ciphers/enigma_machine2.py
│ │ ├── ./Python/ciphers/hill_cipher.py
│ │ ├── ./Python/ciphers/__init__.py
│ │ ├── ./Python/ciphers/mixed_keyword_cypher.py
│ │ ├── ./Python/ciphers/mono_alphabetic_ciphers.py
│ │ ├── ./Python/ciphers/morse_code_implementation.py
│ │ ├── ./Python/ciphers/onepad_cipher.py
│ │ ├── ./Python/ciphers/playfair_cipher.py
│ │ ├── ./Python/ciphers/porta_cipher.py
│ │ ├── ./Python/ciphers/rabin_miller.py
│ │ ├── ./Python/ciphers/rail_fence_cipher.py
│ │ ├── ./Python/ciphers/rot13.py
│ │ ├── ./Python/ciphers/rsa_cipher.py
│ │ ├── ./Python/ciphers/rsa_factorization.py
│ │ ├── ./Python/ciphers/rsa_key_generator.py
│ │ ├── ./Python/ciphers/shuffled_shift_cipher.py
│ │ ├── ./Python/ciphers/simple_keyword_cypher.py
│ │ ├── ./Python/ciphers/simple_substitution_cipher.py
│ │ ├── ./Python/ciphers/trafid_cipher.py
│ │ ├── ./Python/ciphers/transposition_cipher_encrypt_decrypt_file.py
│ │ ├── ./Python/ciphers/transposition_cipher.py
│ │ ├── ./Python/ciphers/vigenere_cipher.py
│ │ └── ./Python/ciphers/xor_cipher.py
│ ├── ./Python/compression
│ │ ├── ./Python/compression/burrows_wheeler.py
│ │ ├── ./Python/compression/huffman.py
│ │ ├── ./Python/compression/image_data
│ │ │ ├── ./Python/compression/image_data/compressed_image.png
│ │ │ ├── ./Python/compression/image_data/example_image.jpg
│ │ │ ├── ./Python/compression/image_data/__init__.py
│ │ │ └── ./Python/compression/image_data/original_image.png
│ │ ├── ./Python/compression/__init__.py
│ │ ├── ./Python/compression/lempel_ziv_decompress.py
│ │ ├── ./Python/compression/lempel_ziv.py
│ │ └── ./Python/compression/peak_signal_to_noise_ratio.py
│ ├── ./Python/computer_vision
│ │ ├── ./Python/computer_vision/cnn_classification.py
│ │ ├── ./Python/computer_vision/harris_corner.py
│ │ ├── ./Python/computer_vision/__init__.py
│ │ ├── ./Python/computer_vision/mean_threshold.py
│ │ ├── ./Python/computer_vision/README.html
│ │ └── ./Python/computer_vision/README.md
│ ├── ./Python/conversions
│ │ ├── ./Python/conversions/binary_to_decimal.py
│ │ ├── ./Python/conversions/binary_to_octal.py
│ │ ├── ./Python/conversions/decimal_to_any.py
│ │ ├── ./Python/conversions/decimal_to_binary.py
│ │ ├── ./Python/conversions/decimal_to_binary_recursion.py
│ │ ├── ./Python/conversions/decimal_to_hexadecimal.py
│ │ ├── ./Python/conversions/decimal_to_octal.py
│ │ ├── ./Python/conversions/hexadecimal_to_decimal.py
│ │ ├── ./Python/conversions/hex_to_bin.py
│ │ ├── ./Python/conversions/__init__.py
│ │ ├── ./Python/conversions/molecular_chemistry.py
│ │ ├── ./Python/conversions/octal_to_decimal.py
│ │ ├── ./Python/conversions/prefix_conversions.py
│ │ ├── ./Python/conversions/rgb_hsv_conversion.py
│ │ ├── ./Python/conversions/roman_numerals.py
│ │ ├── ./Python/conversions/temperature_conversions.py
│ │ └── ./Python/conversions/weight_conversion.py
│ ├── ./Python/data_structures
│ │ ├── ./Python/data_structures/binary_tree
│ │ │ ├── ./Python/data_structures/binary_tree/avl_tree.py
│ │ │ ├── ./Python/data_structures/binary_tree/basic_binary_tree.py
│ │ │ ├── ./Python/data_structures/binary_tree/binary_search_tree.py
│ │ │ ├── ./Python/data_structures/binary_tree/binary_search_tree_recursive.py
│ │ │ ├── ./Python/data_structures/binary_tree/binary_tree_mirror.py
│ │ │ ├── ./Python/data_structures/binary_tree/binary_tree_traversals.py
│ │ │ ├── ./Python/data_structures/binary_tree/fenwick_tree.py
│ │ │ ├── ./Python/data_structures/binary_tree/__init__.py
│ │ │ ├── ./Python/data_structures/binary_tree/lazy_segment_tree.py
│ │ │ ├── ./Python/data_structures/binary_tree/lowest_common_ancestor.py
│ │ │ ├── ./Python/data_structures/binary_tree/merge_two_binary_trees.py
│ │ │ ├── ./Python/data_structures/binary_tree/non_recursive_segment_tree.py
│ │ │ ├── ./Python/data_structures/binary_tree/number_of_possible_binary_trees.py
│ │ │ ├── ./Python/data_structures/binary_tree/red_black_tree.py
│ │ │ ├── ./Python/data_structures/binary_tree/segment_tree_other.py
│ │ │ ├── ./Python/data_structures/binary_tree/segment_tree.py
│ │ │ ├── ./Python/data_structures/binary_tree/treap.py
│ │ │ └── ./Python/data_structures/binary_tree/wavelet_tree.py
│ │ ├── ./Python/data_structures/disjoint_set
│ │ │ ├── ./Python/data_structures/disjoint_set/alternate_disjoint_set.py
│ │ │ ├── ./Python/data_structures/disjoint_set/disjoint_set.py
│ │ │ └── ./Python/data_structures/disjoint_set/__init__.py
│ │ ├── ./Python/data_structures/hashing
│ │ │ ├── ./Python/data_structures/hashing/double_hash.py
│ │ │ ├── ./Python/data_structures/hashing/hash_table.py
│ │ │ ├── ./Python/data_structures/hashing/hash_table_with_linked_list.py
│ │ │ ├── ./Python/data_structures/hashing/__init__.py
│ │ │ ├── ./Python/data_structures/hashing/number_theory
│ │ │ └── ./Python/data_structures/hashing/quadratic_probing.py
│ │ ├── ./Python/data_structures/heap
│ │ │ ├── ./Python/data_structures/heap/binomial_heap.py
│ │ │ ├── ./Python/data_structures/heap/heap_generic.py
│ │ │ ├── ./Python/data_structures/heap/heap.py
│ │ │ ├── ./Python/data_structures/heap/__init__.py
│ │ │ ├── ./Python/data_structures/heap/max_heap.py
│ │ │ ├── ./Python/data_structures/heap/min_heap.py
│ │ │ ├── ./Python/data_structures/heap/randomized_heap.py
│ │ │ └── ./Python/data_structures/heap/skew_heap.py
│ │ ├── ./Python/data_structures/__init__.py
│ │ ├── ./Python/data_structures/linked_list
│ │ │ ├── ./Python/data_structures/linked_list/circular_linked_list.py
│ │ │ ├── ./Python/data_structures/linked_list/deque_doubly.py
│ │ │ ├── ./Python/data_structures/linked_list/doubly_linked_list.py
│ │ │ ├── ./Python/data_structures/linked_list/doubly_linked_list_two.py
│ │ │ ├── ./Python/data_structures/linked_list/from_sequence.py
│ │ │ ├── ./Python/data_structures/linked_list/has_loop.py
│ │ │ ├── ./Python/data_structures/linked_list/__init__.py
│ │ │ ├── ./Python/data_structures/linked_list/is_palindrome.py
│ │ │ ├── ./Python/data_structures/linked_list/merge_two_lists.py
│ │ │ ├── ./Python/data_structures/linked_list/middle_element_of_linked_list.py
│ │ │ ├── ./Python/data_structures/linked_list/print_reverse.py
│ │ │ ├── ./Python/data_structures/linked_list/singly_linked_list.py
│ │ │ ├── ./Python/data_structures/linked_list/skip_list.py
│ │ │ └── ./Python/data_structures/linked_list/swap_nodes.py
│ │ ├── ./Python/data_structures/queue
│ │ │ ├── ./Python/data_structures/queue/circular_queue.py
│ │ │ ├── ./Python/data_structures/queue/double_ended_queue.py
│ │ │ ├── ./Python/data_structures/queue/__init__.py
│ │ │ ├── ./Python/data_structures/queue/linked_queue.py
│ │ │ ├── ./Python/data_structures/queue/priority_queue_using_list.py
│ │ │ ├── ./Python/data_structures/queue/queue_on_list.py
│ │ │ └── ./Python/data_structures/queue/queue_on_pseudo_stack.py
│ │ ├── ./Python/data_structures/stacks
│ │ │ ├── ./Python/data_structures/stacks/balanced_parentheses.py
│ │ │ ├── ./Python/data_structures/stacks/dijkstras_two_stack_algorithm.py
│ │ │ ├── ./Python/data_structures/stacks/evaluate_postfix_notations.py
│ │ │ ├── ./Python/data_structures/stacks/infix_to_postfix_conversion.py
│ │ │ ├── ./Python/data_structures/stacks/infix_to_prefix_conversion.py
│ │ │ ├── ./Python/data_structures/stacks/__init__.py
│ │ │ ├── ./Python/data_structures/stacks/linked_stack.py
│ │ │ ├── ./Python/data_structures/stacks/next_greater_element.py
│ │ │ ├── ./Python/data_structures/stacks/postfix_evaluation.py
│ │ │ ├── ./Python/data_structures/stacks/prefix_evaluation.py
│ │ │ ├── ./Python/data_structures/stacks/stack.py
│ │ │ ├── ./Python/data_structures/stacks/stack_using_dll.py
│ │ │ └── ./Python/data_structures/stacks/stock_span_problem.py
│ │ └── ./Python/data_structures/trie
│ │ ├── ./Python/data_structures/trie/__init__.py
│ │ └── ./Python/data_structures/trie/trie.py
│ ├── ./Python/digital_image_processing
│ │ ├── ./Python/digital_image_processing/change_brightness.py
│ │ ├── ./Python/digital_image_processing/change_contrast.py
│ │ ├── ./Python/digital_image_processing/convert_to_negative.py
│ │ ├── ./Python/digital_image_processing/dithering
│ │ │ ├── ./Python/digital_image_processing/dithering/burkes.py
│ │ │ └── ./Python/digital_image_processing/dithering/__init__.py
│ │ ├── ./Python/digital_image_processing/edge_detection
│ │ │ ├── ./Python/digital_image_processing/edge_detection/canny.py
│ │ │ └── ./Python/digital_image_processing/edge_detection/__init__.py
│ │ ├── ./Python/digital_image_processing/filters
│ │ │ ├── ./Python/digital_image_processing/filters/bilateral_filter.py
│ │ │ ├── ./Python/digital_image_processing/filters/convolve.py
│ │ │ ├── ./Python/digital_image_processing/filters/gaussian_filter.py
│ │ │ ├── ./Python/digital_image_processing/filters/__init__.py
│ │ │ ├── ./Python/digital_image_processing/filters/median_filter.py
│ │ │ └── ./Python/digital_image_processing/filters/sobel_filter.py
│ │ ├── ./Python/digital_image_processing/histogram_equalization
│ │ │ ├── ./Python/digital_image_processing/histogram_equalization/histogram_stretch.py
│ │ │ ├── ./Python/digital_image_processing/histogram_equalization/image_data
│ │ │ ├── ./Python/digital_image_processing/histogram_equalization/__init__.py
│ │ │ └── ./Python/digital_image_processing/histogram_equalization/output_data
│ │ ├── ./Python/digital_image_processing/image_data
│ │ │ ├── ./Python/digital_image_processing/image_data/__init__.py
│ │ │ └── ./Python/digital_image_processing/image_data/lena_small.jpg
│ │ ├── ./Python/digital_image_processing/index_calculation.py
│ │ ├── ./Python/digital_image_processing/__init__.py
│ │ ├── ./Python/digital_image_processing/resize
│ │ │ ├── ./Python/digital_image_processing/resize/__init__.py
│ │ │ └── ./Python/digital_image_processing/resize/resize.py
│ │ ├── ./Python/digital_image_processing/rotation
│ │ │ ├── ./Python/digital_image_processing/rotation/__init__.py
│ │ │ └── ./Python/digital_image_processing/rotation/rotation.py
│ │ ├── ./Python/digital_image_processing/sepia.py
│ │ └── ./Python/digital_image_processing/test_digital_image_processing.py
│ ├── ./Python/DIRECTORY.html
│ ├── ./Python/DIRECTORY.md
│ ├── ./Python/divide_and_conquer
│ │ ├── ./Python/divide_and_conquer/closest_pair_of_points.py
│ │ ├── ./Python/divide_and_conquer/convex_hull.py
│ │ ├── ./Python/divide_and_conquer/heaps_algorithm_iterative.py
│ │ ├── ./Python/divide_and_conquer/heaps_algorithm.py
│ │ ├── ./Python/divide_and_conquer/__init__.py
│ │ ├── ./Python/divide_and_conquer/inversions.py
│ │ ├── ./Python/divide_and_conquer/kth_order_statistic.py
│ │ ├── ./Python/divide_and_conquer/max_difference_pair.py
│ │ ├── ./Python/divide_and_conquer/max_subarray_sum.py
│ │ ├── ./Python/divide_and_conquer/mergesort.py
│ │ ├── ./Python/divide_and_conquer/peak.py
│ │ ├── ./Python/divide_and_conquer/power.py
│ │ └── ./Python/divide_and_conquer/strassen_matrix_multiplication.py
│ ├── ./Python/dynamic_programming
│ │ ├── ./Python/dynamic_programming/abbreviation.py
│ │ ├── ./Python/dynamic_programming/bitmask.py
│ │ ├── ./Python/dynamic_programming/catalan_numbers.py
│ │ ├── ./Python/dynamic_programming/climbing_stairs.py
│ │ ├── ./Python/dynamic_programming/edit_distance.py
│ │ ├── ./Python/dynamic_programming/factorial.py
│ │ ├── ./Python/dynamic_programming/fast_fibonacci.py
│ │ ├── ./Python/dynamic_programming/fibonacci.py
│ │ ├── ./Python/dynamic_programming/floyd_warshall.py
│ │ ├── ./Python/dynamic_programming/fractional_knapsack_2.py
│ │ ├── ./Python/dynamic_programming/fractional_knapsack.py
│ │ ├── ./Python/dynamic_programming/__init__.py
│ │ ├── ./Python/dynamic_programming/integer_partition.py
│ │ ├── ./Python/dynamic_programming/iterating_through_submasks.py
│ │ ├── ./Python/dynamic_programming/k_means_clustering_tensorflow.py_tf
│ │ ├── ./Python/dynamic_programming/knapsack.py
│ │ ├── ./Python/dynamic_programming/longest_common_subsequence.py
│ │ ├── ./Python/dynamic_programming/longest_increasing_subsequence_o(nlogn).py
│ │ ├── ./Python/dynamic_programming/longest_increasing_subsequence.py
│ │ ├── ./Python/dynamic_programming/longest_sub_array.py
│ │ ├── ./Python/dynamic_programming/matrix_chain_order.py
│ │ ├── ./Python/dynamic_programming/max_non_adjacent_sum.py
│ │ ├── ./Python/dynamic_programming/max_sub_array.py
│ │ ├── ./Python/dynamic_programming/max_sum_contiguous_subsequence.py
│ │ ├── ./Python/dynamic_programming/minimum_coin_change.py
│ │ ├── ./Python/dynamic_programming/minimum_cost_path.py
│ │ ├── ./Python/dynamic_programming/minimum_partition.py
│ │ ├── ./Python/dynamic_programming/minimum_steps_to_one.py
│ │ ├── ./Python/dynamic_programming/optimal_binary_search_tree.py
│ │ ├── ./Python/dynamic_programming/rod_cutting.py
│ │ ├── ./Python/dynamic_programming/subset_generation.py
│ │ └── ./Python/dynamic_programming/sum_of_subset.py
│ ├── ./Python/electronics
│ │ ├── ./Python/electronics/electric_power.py
│ │ └── ./Python/electronics/ohms_law.py
│ ├── ./Python/file_transfer
│ │ ├── ./Python/file_transfer/__init__.py
│ │ ├── ./Python/file_transfer/mytext.txt
│ │ ├── ./Python/file_transfer/receive_file.py
│ │ ├── ./Python/file_transfer/send_file.py
│ │ └── ./Python/file_transfer/tests
│ │ ├── ./Python/file_transfer/tests/__init__.py
│ │ └── ./Python/file_transfer/tests/test_send_file.py
│ ├── ./Python/fractals
│ │ ├── ./Python/fractals/koch_snowflake.py
│ │ ├── ./Python/fractals/mandelbrot.py
│ │ └── ./Python/fractals/sierpinski_triangle.py
│ ├── ./Python/fuzzy_logic
│ │ ├── ./Python/fuzzy_logic/fuzzy_operations.py
│ │ └── ./Python/fuzzy_logic/__init__.py
│ ├── ./Python/genetic_algorithm
│ │ ├── ./Python/genetic_algorithm/basic_string.py
│ │ └── ./Python/genetic_algorithm/__init__.py
│ ├── ./Python/geodesy
│ │ ├── ./Python/geodesy/haversine_distance.py
│ │ ├── ./Python/geodesy/__init__.py
│ │ └── ./Python/geodesy/lamberts_ellipsoidal_distance.py
│ ├── ./Python/graphics
│ │ ├── ./Python/graphics/bezier_curve.py
│ │ ├── ./Python/graphics/__init__.py
│ │ └── ./Python/graphics/vector3_for_2d_rendering.py
│ ├── ./Python/graphs
│ │ ├── ./Python/graphs/articulation_points.py
│ │ ├── ./Python/graphs/a_star.py
│ │ ├── ./Python/graphs/basic_graphs.py
│ │ ├── ./Python/graphs/bellman_ford.py
│ │ ├── ./Python/graphs/bfs_shortest_path.py
│ │ ├── ./Python/graphs/bfs_zero_one_shortest_path.py
│ │ ├── ./Python/graphs/bidirectional_a_star.py
│ │ ├── ./Python/graphs/bidirectional_breadth_first_search.py
│ │ ├── ./Python/graphs/breadth_first_search_2.py
│ │ ├── ./Python/graphs/breadth_first_search.py
│ │ ├── ./Python/graphs/breadth_first_search_shortest_path.py
│ │ ├── ./Python/graphs/check_bipartite_graph_bfs.py
│ │ ├── ./Python/graphs/check_bipartite_graph_dfs.py
│ │ ├── ./Python/graphs/connected_components.py
│ │ ├── ./Python/graphs/depth_first_search_2.py
│ │ ├── ./Python/graphs/depth_first_search.py
│ │ ├── ./Python/graphs/dijkstra_2.py
│ │ ├── ./Python/graphs/dijkstra_algorithm.py
│ │ ├── ./Python/graphs/dijkstra.py
│ │ ├── ./Python/graphs/dinic.py
│ │ ├── ./Python/graphs/directed_and_undirected_(weighted)_graph.py
│ │ ├── ./Python/graphs/edmonds_karp_multiple_source_and_sink.py
│ │ ├── ./Python/graphs/eulerian_path_and_circuit_for_undirected_graph.py
│ │ ├── ./Python/graphs/even_tree.py
│ │ ├── ./Python/graphs/finding_bridges.py
│ │ ├── ./Python/graphs/frequent_pattern_graph_miner.py
│ │ ├── ./Python/graphs/gale_shapley_bigraph.py
│ │ ├── ./Python/graphs/graph_list.py
│ │ ├── ./Python/graphs/graph_matrix.py
│ │ ├── ./Python/graphs/graphs_floyd_warshall.py
│ │ ├── ./Python/graphs/greedy_best_first.py
│ │ ├── ./Python/graphs/g_topological_sort.py
│ │ ├── ./Python/graphs/__init__.py
│ │ ├── ./Python/graphs/kahns_algorithm_long.py
│ │ ├── ./Python/graphs/kahns_algorithm_topo.py
│ │ ├── ./Python/graphs/karger.py
│ │ ├── ./Python/graphs/markov_chain.py
│ │ ├── ./Python/graphs/minimum_spanning_tree_boruvka.py
│ │ ├── ./Python/graphs/minimum_spanning_tree_kruskal2.py
│ │ ├── ./Python/graphs/minimum_spanning_tree_kruskal.py
│ │ ├── ./Python/graphs/minimum_spanning_tree_prims2.py
│ │ ├── ./Python/graphs/minimum_spanning_tree_prims.py
│ │ ├── ./Python/graphs/multi_heuristic_astar.py
│ │ ├── ./Python/graphs/page_rank.py
│ │ ├── ./Python/graphs/prim.py
│ │ ├── ./Python/graphs/scc_kosaraju.py
│ │ ├── ./Python/graphs/strongly_connected_components.py
│ │ ├── ./Python/graphs/tarjans_scc.py
│ │ └── ./Python/graphs/tests
│ │ ├── ./Python/graphs/tests/test_min_spanning_tree_kruskal.py
│ │ └── ./Python/graphs/tests/test_min_spanning_tree_prim.py
│ ├── ./Python/hashes
│ │ ├── ./Python/hashes/adler32.py
│ │ ├── ./Python/hashes/chaos_machine.py
│ │ ├── ./Python/hashes/djb2.py
│ │ ├── ./Python/hashes/enigma_machine.py
│ │ ├── ./Python/hashes/hamming_code.py
│ │ ├── ./Python/hashes/__init__.py
│ │ ├── ./Python/hashes/luhn.py
│ │ ├── ./Python/hashes/md5.py
│ │ ├── ./Python/hashes/sdbm.py
│ │ └── ./Python/hashes/sha1.py
│ ├── ./Python/knapsack
│ │ ├── ./Python/knapsack/greedy_knapsack.py
│ │ ├── ./Python/knapsack/__init__.py
│ │ ├── ./Python/knapsack/knapsack.py
│ │ ├── ./Python/knapsack/README.html
│ │ ├── ./Python/knapsack/README.md
│ │ └── ./Python/knapsack/tests
│ │ ├── ./Python/knapsack/tests/__init__.py
│ │ ├── ./Python/knapsack/tests/test_greedy_knapsack.py
│ │ └── ./Python/knapsack/tests/test_knapsack.py
│ ├── ./Python/linear_algebra
│ │ ├── ./Python/linear_algebra/__init__.py
│ │ ├── ./Python/linear_algebra/README.html
│ │ ├── ./Python/linear_algebra/README.md
│ │ └── ./Python/linear_algebra/src
│ │ ├── ./Python/linear_algebra/src/conjugate_gradient.py
│ │ ├── ./Python/linear_algebra/src/__init__.py
│ │ ├── ./Python/linear_algebra/src/lib.py
│ │ ├── ./Python/linear_algebra/src/polynom_for_points.py
│ │ ├── ./Python/linear_algebra/src/power_iteration.py
│ │ ├── ./Python/linear_algebra/src/rayleigh_quotient.py
│ │ ├── ./Python/linear_algebra/src/test_linear_algebra.py
│ │ └── ./Python/linear_algebra/src/transformations_2d.py
│ ├── ./Python/machine_learning
│ │ ├── ./Python/machine_learning/astar.py
│ │ ├── ./Python/machine_learning/data_transformations.py
│ │ ├── ./Python/machine_learning/decision_tree.py
│ │ ├── ./Python/machine_learning/forecasting
│ │ │ ├── ./Python/machine_learning/forecasting/ex_data.csv
│ │ │ ├── ./Python/machine_learning/forecasting/__init__.py
│ │ │ └── ./Python/machine_learning/forecasting/run.py
│ │ ├── ./Python/machine_learning/gaussian_naive_bayes.py
│ │ ├── ./Python/machine_learning/gradient_boosting_regressor.py
│ │ ├── ./Python/machine_learning/gradient_descent.py
│ │ ├── ./Python/machine_learning/__init__.py
│ │ ├── ./Python/machine_learning/k_means_clust.py
│ │ ├── ./Python/machine_learning/k_nearest_neighbours.py
│ │ ├── ./Python/machine_learning/knn_sklearn.py
│ │ ├── ./Python/machine_learning/linear_discriminant_analysis.py
│ │ ├── ./Python/machine_learning/linear_regression.py
│ │ ├── ./Python/machine_learning/logistic_regression.py
│ │ ├── ./Python/machine_learning/lstm
│ │ │ ├── ./Python/machine_learning/lstm/__init__.py
│ │ │ ├── ./Python/machine_learning/lstm/lstm_prediction.py
│ │ │ └── ./Python/machine_learning/lstm/sample_data.csv
│ │ ├── ./Python/machine_learning/multilayer_perceptron_classifier.py
│ │ ├── ./Python/machine_learning/polymonial_regression.py
│ │ ├── ./Python/machine_learning/random_forest_classifier.py
│ │ ├── ./Python/machine_learning/random_forest_regressor.py
│ │ ├── ./Python/machine_learning/scoring_functions.py
│ │ ├── ./Python/machine_learning/sequential_minimum_optimization.py
│ │ ├── ./Python/machine_learning/similarity_search.py
│ │ ├── ./Python/machine_learning/support_vector_machines.py
│ │ └── ./Python/machine_learning/word_frequency_functions.py
│ ├── ./Python/maths
│ │ ├── ./Python/maths/3n_plus_1.py
│ │ ├── ./Python/maths/abs_max.py
│ │ ├── ./Python/maths/abs_min.py
│ │ ├── ./Python/maths/abs.py
│ │ ├── ./Python/maths/add.py
│ │ ├── ./Python/maths/aliquot_sum.py
│ │ ├── ./Python/maths/allocation_number.py
│ │ ├── ./Python/maths/area.py
│ │ ├── ./Python/maths/area_under_curve.py
│ │ ├── ./Python/maths/armstrong_numbers.py
│ │ ├── ./Python/maths/average_mean.py
│ │ ├── ./Python/maths/average_median.py
│ │ ├── ./Python/maths/average_mode.py
│ │ ├── ./Python/maths/bailey_borwein_plouffe.py
│ │ ├── ./Python/maths/basic_maths.py
│ │ ├── ./Python/maths/binary_exp_mod.py
│ │ ├── ./Python/maths/binary_exponentiation_2.py
│ │ ├── ./Python/maths/binary_exponentiation_3.py
│ │ ├── ./Python/maths/binary_exponentiation.py
│ │ ├── ./Python/maths/binomial_coefficient.py
│ │ ├── ./Python/maths/binomial_distribution.py
│ │ ├── ./Python/maths/bisection.py
│ │ ├── ./Python/maths/ceil.py
│ │ ├── ./Python/maths/check_valid_ip_address.py
│ │ ├── ./Python/maths/chudnovsky_algorithm.py
│ │ ├── ./Python/maths/collatz_sequence.py
│ │ ├── ./Python/maths/combinations.py
│ │ ├── ./Python/maths/decimal_isolate.py
│ │ ├── ./Python/maths/double_factorial_recursive.py
│ │ ├── ./Python/maths/entropy.py
│ │ ├── ./Python/maths/euclidean_distance.py
│ │ ├── ./Python/maths/euclidean_gcd.py
│ │ ├── ./Python/maths/euler_method.py
│ │ ├── ./Python/maths/eulers_totient.py
│ │ ├── ./Python/maths/extended_euclidean_algorithm.py
│ │ ├── ./Python/maths/factorial_iterative.py
│ │ ├── ./Python/maths/factorial_python.py
│ │ ├── ./Python/maths/factorial_recursive.py
│ │ ├── ./Python/maths/factors.py
│ │ ├── ./Python/maths/fermat_little_theorem.py
│ │ ├── ./Python/maths/fibonacci.py
│ │ ├── ./Python/maths/fibonacci_sequence_recursion.py
│ │ ├── ./Python/maths/find_max.py
│ │ ├── ./Python/maths/find_max_recursion.py
│ │ ├── ./Python/maths/find_min.py
│ │ ├── ./Python/maths/find_min_recursion.py
│ │ ├── ./Python/maths/floor.py
│ │ ├── ./Python/maths/gamma.py
│ │ ├── ./Python/maths/gaussian.py
│ │ ├── ./Python/maths/greatest_common_divisor.py
│ │ ├── ./Python/maths/greedy_coin_change.py
│ │ ├── ./Python/maths/hardy_ramanujanalgo.py
│ │ ├── ./Python/maths/images
│ │ │ ├── ./Python/maths/images/gaussian.png
│ │ │ └── ./Python/maths/images/__init__.py
│ │ ├── ./Python/maths/__init__.py
│ │ ├── ./Python/maths/integration_by_simpson_approx.py
│ │ ├── ./Python/maths/is_square_free.py
│ │ ├── ./Python/maths/jaccard_similarity.py
│ │ ├── ./Python/maths/kadanes.py
│ │ ├── ./Python/maths/karatsuba.py
│ │ ├── ./Python/maths/krishnamurthy_number.py
│ │ ├── ./Python/maths/kth_lexicographic_permutation.py
│ │ ├── ./Python/maths/largest_of_very_large_numbers.py
│ │ ├── ./Python/maths/largest_subarray_sum.py
│ │ ├── ./Python/maths/least_common_multiple.py
│ │ ├── ./Python/maths/line_length.py
│ │ ├── ./Python/maths/lucas_lehmer_primality_test.py
│ │ ├── ./Python/maths/lucas_series.py
│ │ ├── ./Python/maths/matrix_exponentiation.py
│ │ ├── ./Python/maths/max_sum_sliding_window.py
│ │ ├── ./Python/maths/median_of_two_arrays.py
│ │ ├── ./Python/maths/miller_rabin.py
│ │ ├── ./Python/maths/mobius_function.py
│ │ ├── ./Python/maths/modular_exponential.py
│ │ ├── ./Python/maths/monte_carlo_dice.py
│ │ ├── ./Python/maths/monte_carlo.py
│ │ ├── ./Python/maths/newton_raphson.py
│ │ ├── ./Python/maths/number_of_digits.py
│ │ ├── ./Python/maths/numerical_integration.py
│ │ ├── ./Python/maths/perfect_cube.py
│ │ ├── ./Python/maths/perfect_number.py
│ │ ├── ./Python/maths/perfect_square.py
│ │ ├── ./Python/maths/pi_monte_carlo_estimation.py
│ │ ├── ./Python/maths/polynomial_evaluation.py
│ │ ├── ./Python/maths/power_using_recursion.py
│ │ ├── ./Python/maths/prime_check.py
│ │ ├── ./Python/maths/prime_factors.py
│ │ ├── ./Python/maths/primelib.py
│ │ ├── ./Python/maths/prime_numbers.py
│ │ ├── ./Python/maths/prime_sieve_eratosthenes.py
│ │ ├── ./Python/maths/pythagoras.py
│ │ ├── ./Python/maths/qr_decomposition.py
│ │ ├── ./Python/maths/quadratic_equations_complex_numbers.py
│ │ ├── ./Python/maths/radians.py
│ │ ├── ./Python/maths/radix2_fft.py
│ │ ├── ./Python/maths/relu.py
│ │ ├── ./Python/maths/runge_kutta.py
│ │ ├── ./Python/maths/segmented_sieve.py
│ │ ├── ./Python/maths/series
│ │ │ ├── ./Python/maths/series/arithmetic_mean.py
│ │ │ ├── ./Python/maths/series/geometric_mean.py
│ │ │ ├── ./Python/maths/series/geometric_series.py
│ │ │ ├── ./Python/maths/series/harmonic_series.py
│ │ │ ├── ./Python/maths/series/__init__.py
│ │ │ └── ./Python/maths/series/p_series.py
│ │ ├── ./Python/maths/sieve_of_eratosthenes.py
│ │ ├── ./Python/maths/sigmoid.py
│ │ ├── ./Python/maths/simpson_rule.py
│ │ ├── ./Python/maths/softmax.py
│ │ ├── ./Python/maths/square_root.py
│ │ ├── ./Python/maths/sum_of_arithmetic_series.py
│ │ ├── ./Python/maths/sum_of_digits.py
│ │ ├── ./Python/maths/sum_of_geometric_progression.py
│ │ ├── ./Python/maths/test_prime_check.py
│ │ ├── ./Python/maths/trapezoidal_rule.py
│ │ ├── ./Python/maths/triplet_sum.py
│ │ ├── ./Python/maths/two_pointer.py
│ │ ├── ./Python/maths/two_sum.py
│ │ ├── ./Python/maths/ugly_numbers.py
│ │ ├── ./Python/maths/volume.py
│ │ └── ./Python/maths/zellers_congruence.py
│ ├── ./Python/matrix
│ │ ├── ./Python/matrix/count_islands_in_matrix.py
│ │ ├── ./Python/matrix/__init__.py
│ │ ├── ./Python/matrix/inverse_of_matrix.py
│ │ ├── ./Python/matrix/matrix_class.py
│ │ ├── ./Python/matrix/matrix_operation.py
│ │ ├── ./Python/matrix/nth_fibonacci_using_matrix_exponentiation.py
│ │ ├── ./Python/matrix/rotate_matrix.py
│ │ ├── ./Python/matrix/searching_in_sorted_matrix.py
│ │ ├── ./Python/matrix/sherman_morrison.py
│ │ ├── ./Python/matrix/spiral_print.py
│ │ └── ./Python/matrix/tests
│ │ ├── ./Python/matrix/tests/__init__.py
│ │ ├── ./Python/matrix/tests/pytest.ini
│ │ └── ./Python/matrix/tests/test_matrix_operation.py
│ ├── ./Python/mypy.ini
│ ├── ./Python/networking_flow
│ │ ├── ./Python/networking_flow/ford_fulkerson.py
│ │ ├── ./Python/networking_flow/__init__.py
│ │ └── ./Python/networking_flow/minimum_cut.py
│ ├── ./Python/neural_network
│ │ ├── ./Python/neural_network/2_hidden_layers_neural_network.py
│ │ ├── ./Python/neural_network/back_propagation_neural_network.py
│ │ ├── ./Python/neural_network/convolution_neural_network.py
│ │ ├── ./Python/neural_network/gan.py_tf
│ │ ├── ./Python/neural_network/__init__.py
│ │ ├── ./Python/neural_network/input_data.py_tf
│ │ └── ./Python/neural_network/perceptron.py
│ ├── ./Python/other
│ │ ├── ./Python/other/activity_selection.py
│ │ ├── ./Python/other/davis–putnam–logemann–loveland.py
│ │ ├── ./Python/other/dijkstra_bankers_algorithm.py
│ │ ├── ./Python/other/doomsday.py
│ │ ├── ./Python/other/fischer_yates_shuffle.py
│ │ ├── ./Python/other/gauss_easter.py
│ │ ├── ./Python/other/graham_scan.py
│ │ ├── ./Python/other/greedy.py
│ │ ├── ./Python/other/__init__.py
│ │ ├── ./Python/other/least_recently_used.py
│ │ ├── ./Python/other/lfu_cache.py
│ │ ├── ./Python/other/linear_congruential_generator.py
│ │ ├── ./Python/other/lru_cache.py
│ │ ├── ./Python/other/magicdiamondpattern.py
│ │ ├── ./Python/other/nested_brackets.py
│ │ ├── ./Python/other/password_generator.py
│ │ ├── ./Python/other/scoring_algorithm.py
│ │ ├── ./Python/other/sdes.py
│ │ └── ./Python/other/tower_of_hanoi.py
│ ├── ./Python/physics
│ │ └── ./Python/physics/n_body_simulation.py
│ ├── ./Python/project_euler
│ │ ├── ./Python/project_euler/__init__.py
│ │ ├── ./Python/project_euler/problem_001
│ │ │ ├── ./Python/project_euler/problem_001/__init__.py
│ │ │ ├── ./Python/project_euler/problem_001/sol1.py
│ │ │ ├── ./Python/project_euler/problem_001/sol2.py
│ │ │ ├── ./Python/project_euler/problem_001/sol3.py
│ │ │ ├── ./Python/project_euler/problem_001/sol4.py
│ │ │ ├── ./Python/project_euler/problem_001/sol5.py
│ │ │ ├── ./Python/project_euler/problem_001/sol6.py
│ │ │ └── ./Python/project_euler/problem_001/sol7.py
│ │ ├── ./Python/project_euler/problem_002
│ │ │ ├── ./Python/project_euler/problem_002/__init__.py
│ │ │ ├── ./Python/project_euler/problem_002/sol1.py
│ │ │ ├── ./Python/project_euler/problem_002/sol2.py
│ │ │ ├── ./Python/project_euler/problem_002/sol3.py
│ │ │ ├── ./Python/project_euler/problem_002/sol4.py
│ │ │ └── ./Python/project_euler/problem_002/sol5.py
│ │ ├── ./Python/project_euler/problem_003
│ │ │ ├── ./Python/project_euler/problem_003/__init__.py
│ │ │ ├── ./Python/project_euler/problem_003/sol1.py
│ │ │ ├── ./Python/project_euler/problem_003/sol2.py
│ │ │ └── ./Python/project_euler/problem_003/sol3.py
│ │ ├── ./Python/project_euler/problem_004
│ │ │ ├── ./Python/project_euler/problem_004/__init__.py
│ │ │ ├── ./Python/project_euler/problem_004/sol1.py
│ │ │ └── ./Python/project_euler/problem_004/sol2.py
│ │ ├── ./Python/project_euler/problem_005
│ │ │ ├── ./Python/project_euler/problem_005/__init__.py
│ │ │ ├── ./Python/project_euler/problem_005/sol1.py
│ │ │ └── ./Python/project_euler/problem_005/sol2.py
│ │ ├── ./Python/project_euler/problem_006
│ │ │ ├── ./Python/project_euler/problem_006/__init__.py
│ │ │ ├── ./Python/project_euler/problem_006/sol1.py
│ │ │ ├── ./Python/project_euler/problem_006/sol2.py
│ │ │ ├── ./Python/project_euler/problem_006/sol3.py
│ │ │ └── ./Python/project_euler/problem_006/sol4.py
│ │ ├── ./Python/project_euler/problem_007
│ │ │ ├── ./Python/project_euler/problem_007/__init__.py
│ │ │ ├── ./Python/project_euler/problem_007/sol1.py
│ │ │ ├── ./Python/project_euler/problem_007/sol2.py
│ │ │ └── ./Python/project_euler/problem_007/sol3.py
│ │ ├── ./Python/project_euler/problem_008
│ │ │ ├── ./Python/project_euler/problem_008/__init__.py
│ │ │ ├── ./Python/project_euler/problem_008/sol1.py
│ │ │ ├── ./Python/project_euler/problem_008/sol2.py
│ │ │ └── ./Python/project_euler/problem_008/sol3.py
│ │ ├── ./Python/project_euler/problem_009
│ │ │ ├── ./Python/project_euler/problem_009/__init__.py
│ │ │ ├── ./Python/project_euler/problem_009/sol1.py
│ │ │ ├── ./Python/project_euler/problem_009/sol2.py
│ │ │ └── ./Python/project_euler/problem_009/sol3.py
│ │ ├── ./Python/project_euler/problem_010
│ │ │ ├── ./Python/project_euler/problem_010/__init__.py
│ │ │ ├── ./Python/project_euler/problem_010/sol1.py
│ │ │ ├── ./Python/project_euler/problem_010/sol2.py
│ │ │ └── ./Python/project_euler/problem_010/sol3.py
│ │ ├── ./Python/project_euler/problem_011
│ │ │ ├── ./Python/project_euler/problem_011/grid.txt
│ │ │ ├── ./Python/project_euler/problem_011/__init__.py
│ │ │ ├── ./Python/project_euler/problem_011/sol1.py
│ │ │ └── ./Python/project_euler/problem_011/sol2.py
│ │ ├── ./Python/project_euler/problem_012
│ │ │ ├── ./Python/project_euler/problem_012/__init__.py
│ │ │ ├── ./Python/project_euler/problem_012/sol1.py
│ │ │ └── ./Python/project_euler/problem_012/sol2.py
│ │ ├── ./Python/project_euler/problem_013
│ │ │ ├── ./Python/project_euler/problem_013/__init__.py
│ │ │ ├── ./Python/project_euler/problem_013/num.txt
│ │ │ └── ./Python/project_euler/problem_013/sol1.py
│ │ ├── ./Python/project_euler/problem_014
│ │ │ ├── ./Python/project_euler/problem_014/__init__.py
│ │ │ ├── ./Python/project_euler/problem_014/sol1.py
│ │ │ └── ./Python/project_euler/problem_014/sol2.py
│ │ ├── ./Python/project_euler/problem_015
│ │ │ ├── ./Python/project_euler/problem_015/__init__.py
│ │ │ └── ./Python/project_euler/problem_015/sol1.py
│ │ ├── ./Python/project_euler/problem_016
│ │ │ ├── ./Python/project_euler/problem_016/__init__.py
│ │ │ ├── ./Python/project_euler/problem_016/sol1.py
│ │ │ └── ./Python/project_euler/problem_016/sol2.py
│ │ ├── ./Python/project_euler/problem_017
│ │ │ ├── ./Python/project_euler/problem_017/__init__.py
│ │ │ └── ./Python/project_euler/problem_017/sol1.py
│ │ ├── ./Python/project_euler/problem_018
│ │ │ ├── ./Python/project_euler/problem_018/__init__.py
│ │ │ ├── ./Python/project_euler/problem_018/solution.py
│ │ │ └── ./Python/project_euler/problem_018/triangle.txt
│ │ ├── ./Python/project_euler/problem_019
│ │ │ ├── ./Python/project_euler/problem_019/__init__.py
│ │ │ └── ./Python/project_euler/problem_019/sol1.py
│ │ ├── ./Python/project_euler/problem_020
│ │ │ ├── ./Python/project_euler/problem_020/__init__.py
│ │ │ ├── ./Python/project_euler/problem_020/sol1.py
│ │ │ ├── ./Python/project_euler/problem_020/sol2.py
│ │ │ ├── ./Python/project_euler/problem_020/sol3.py
│ │ │ └── ./Python/project_euler/problem_020/sol4.py
│ │ ├── ./Python/project_euler/problem_021
│ │ │ ├── ./Python/project_euler/problem_021/__init__.py
│ │ │ └── ./Python/project_euler/problem_021/sol1.py
│ │ ├── ./Python/project_euler/problem_022
│ │ │ ├── ./Python/project_euler/problem_022/__init__.py
│ │ │ ├── ./Python/project_euler/problem_022/p022_names.txt
│ │ │ ├── ./Python/project_euler/problem_022/sol1.py
│ │ │ └── ./Python/project_euler/problem_022/sol2.py
│ │ ├── ./Python/project_euler/problem_023
│ │ │ ├── ./Python/project_euler/problem_023/__init__.py
│ │ │ └── ./Python/project_euler/problem_023/sol1.py
│ │ ├── ./Python/project_euler/problem_024
│ │ │ ├── ./Python/project_euler/problem_024/__init__.py
│ │ │ └── ./Python/project_euler/problem_024/sol1.py
│ │ ├── ./Python/project_euler/problem_025
│ │ │ ├── ./Python/project_euler/problem_025/__init__.py
│ │ │ ├── ./Python/project_euler/problem_025/sol1.py
│ │ │ ├── ./Python/project_euler/problem_025/sol2.py
│ │ │ └── ./Python/project_euler/problem_025/sol3.py
│ │ ├── ./Python/project_euler/problem_026
│ │ │ ├── ./Python/project_euler/problem_026/__init__.py
│ │ │ └── ./Python/project_euler/problem_026/sol1.py
│ │ ├── ./Python/project_euler/problem_027
│ │ │ ├── ./Python/project_euler/problem_027/__init__.py
│ │ │ └── ./Python/project_euler/problem_027/sol1.py
│ │ ├── ./Python/project_euler/problem_028
│ │ │ ├── ./Python/project_euler/problem_028/__init__.py
│ │ │ └── ./Python/project_euler/problem_028/sol1.py
│ │ ├── ./Python/project_euler/problem_029
│ │ │ ├── ./Python/project_euler/problem_029/__init__.py
│ │ │ └── ./Python/project_euler/problem_029/sol1.py
│ │ ├── ./Python/project_euler/problem_030
│ │ │ ├── ./Python/project_euler/problem_030/__init__.py
│ │ │ └── ./Python/project_euler/problem_030/sol1.py
│ │ ├── ./Python/project_euler/problem_031
│ │ │ ├── ./Python/project_euler/problem_031/__init__.py
│ │ │ ├── ./Python/project_euler/problem_031/sol1.py
│ │ │ └── ./Python/project_euler/problem_031/sol2.py
│ │ ├── ./Python/project_euler/problem_032
│ │ │ ├── ./Python/project_euler/problem_032/__init__.py
│ │ │ └── ./Python/project_euler/problem_032/sol32.py
│ │ ├── ./Python/project_euler/problem_033
│ │ │ ├── ./Python/project_euler/problem_033/__init__.py
│ │ │ └── ./Python/project_euler/problem_033/sol1.py
│ │ ├── ./Python/project_euler/problem_034
│ │ │ ├── ./Python/project_euler/problem_034/__init__.py
│ │ │ └── ./Python/project_euler/problem_034/sol1.py
│ │ ├── ./Python/project_euler/problem_035
│ │ │ ├── ./Python/project_euler/problem_035/__init__.py
│ │ │ └── ./Python/project_euler/problem_035/sol1.py
│ │ ├── ./Python/project_euler/problem_036
│ │ │ ├── ./Python/project_euler/problem_036/__init__.py
│ │ │ └── ./Python/project_euler/problem_036/sol1.py
│ │ ├── ./Python/project_euler/problem_037
│ │ │ ├── ./Python/project_euler/problem_037/__init__.py
│ │ │ └── ./Python/project_euler/problem_037/sol1.py
│ │ ├── ./Python/project_euler/problem_038
│ │ │ ├── ./Python/project_euler/problem_038/__init__.py
│ │ │ └── ./Python/project_euler/problem_038/sol1.py
│ │ ├── ./Python/project_euler/problem_039
│ │ │ ├── ./Python/project_euler/problem_039/__init__.py
│ │ │ └── ./Python/project_euler/problem_039/sol1.py
│ │ ├── ./Python/project_euler/problem_040
│ │ │ ├── ./Python/project_euler/problem_040/__init__.py
│ │ │ └── ./Python/project_euler/problem_040/sol1.py
│ │ ├── ./Python/project_euler/problem_041
│ │ │ ├── ./Python/project_euler/problem_041/__init__.py
│ │ │ └── ./Python/project_euler/problem_041/sol1.py
│ │ ├── ./Python/project_euler/problem_042
│ │ │ ├── ./Python/project_euler/problem_042/__init__.py
│ │ │ ├── ./Python/project_euler/problem_042/solution42.py
│ │ │ └── ./Python/project_euler/problem_042/words.txt
│ │ ├── ./Python/project_euler/problem_043
│ │ │ ├── ./Python/project_euler/problem_043/__init__.py
│ │ │ └── ./Python/project_euler/problem_043/sol1.py
│ │ ├── ./Python/project_euler/problem_044
│ │ │ ├── ./Python/project_euler/problem_044/__init__.py
│ │ │ └── ./Python/project_euler/problem_044/sol1.py
│ │ ├── ./Python/project_euler/problem_045
│ │ │ ├── ./Python/project_euler/problem_045/__init__.py
│ │ │ └── ./Python/project_euler/problem_045/sol1.py
│ │ ├── ./Python/project_euler/problem_046
│ │ │ ├── ./Python/project_euler/problem_046/__init__.py
│ │ │ └── ./Python/project_euler/problem_046/sol1.py
│ │ ├── ./Python/project_euler/problem_047
│ │ │ ├── ./Python/project_euler/problem_047/__init__.py
│ │ │ └── ./Python/project_euler/problem_047/sol1.py
│ │ ├── ./Python/project_euler/problem_048
│ │ │ ├── ./Python/project_euler/problem_048/__init__.py
│ │ │ └── ./Python/project_euler/problem_048/sol1.py
│ │ ├── ./Python/project_euler/problem_049
│ │ │ ├── ./Python/project_euler/problem_049/__init__.py
│ │ │ └── ./Python/project_euler/problem_049/sol1.py
│ │ ├── ./Python/project_euler/problem_050
│ │ │ ├── ./Python/project_euler/problem_050/__init__.py
│ │ │ └── ./Python/project_euler/problem_050/sol1.py
│ │ ├── ./Python/project_euler/problem_051
│ │ │ ├── ./Python/project_euler/problem_051/__init__.py
│ │ │ └── ./Python/project_euler/problem_051/sol1.py
│ │ ├── ./Python/project_euler/problem_052
│ │ │ ├── ./Python/project_euler/problem_052/__init__.py
│ │ │ └── ./Python/project_euler/problem_052/sol1.py
│ │ ├── ./Python/project_euler/problem_053
│ │ │ ├── ./Python/project_euler/problem_053/__init__.py
│ │ │ └── ./Python/project_euler/problem_053/sol1.py
│ │ ├── ./Python/project_euler/problem_054
│ │ │ ├── ./Python/project_euler/problem_054/__init__.py
│ │ │ ├── ./Python/project_euler/problem_054/poker_hands.txt
│ │ │ ├── ./Python/project_euler/problem_054/sol1.py
│ │ │ └── ./Python/project_euler/problem_054/test_poker_hand.py
│ │ ├── ./Python/project_euler/problem_055
│ │ │ ├── ./Python/project_euler/problem_055/__init__.py
│ │ │ └── ./Python/project_euler/problem_055/sol1.py
│ │ ├── ./Python/project_euler/problem_056
│ │ │ ├── ./Python/project_euler/problem_056/__init__.py
│ │ │ └── ./Python/project_euler/problem_056/sol1.py
│ │ ├── ./Python/project_euler/problem_057
│ │ │ ├── ./Python/project_euler/problem_057/__init__.py
│ │ │ └── ./Python/project_euler/problem_057/sol1.py
│ │ ├── ./Python/project_euler/problem_058
│ │ │ ├── ./Python/project_euler/problem_058/__init__.py
│ │ │ └── ./Python/project_euler/problem_058/sol1.py
│ │ ├── ./Python/project_euler/problem_059
│ │ │ ├── ./Python/project_euler/problem_059/__init__.py
│ │ │ ├── ./Python/project_euler/problem_059/p059_cipher.txt
│ │ │ ├── ./Python/project_euler/problem_059/sol1.py
│ │ │ └── ./Python/project_euler/problem_059/test_cipher.txt
│ │ ├── ./Python/project_euler/problem_062
│ │ │ ├── ./Python/project_euler/problem_062/__init__.py
│ │ │ └── ./Python/project_euler/problem_062/sol1.py
│ │ ├── ./Python/project_euler/problem_063
│ │ │ ├── ./Python/project_euler/problem_063/__init__.py
│ │ │ └── ./Python/project_euler/problem_063/sol1.py
│ │ ├── ./Python/project_euler/problem_064
│ │ │ ├── ./Python/project_euler/problem_064/__init__.py
│ │ │ └── ./Python/project_euler/problem_064/sol1.py
│ │ ├── ./Python/project_euler/problem_065
│ │ │ ├── ./Python/project_euler/problem_065/__init__.py
│ │ │ └── ./Python/project_euler/problem_065/sol1.py
│ │ ├── ./Python/project_euler/problem_067
│ │ │ ├── ./Python/project_euler/problem_067/__init__.py
│ │ │ ├── ./Python/project_euler/problem_067/sol1.py
│ │ │ └── ./Python/project_euler/problem_067/triangle.txt
│ │ ├── ./Python/project_euler/problem_069
│ │ │ ├── ./Python/project_euler/problem_069/__init__.py
│ │ │ └── ./Python/project_euler/problem_069/sol1.py
│ │ ├── ./Python/project_euler/problem_070
│ │ │ ├── ./Python/project_euler/problem_070/__init__.py
│ │ │ └── ./Python/project_euler/problem_070/sol1.py
│ │ ├── ./Python/project_euler/problem_071
│ │ │ ├── ./Python/project_euler/problem_071/__init__.py
│ │ │ └── ./Python/project_euler/problem_071/sol1.py
│ │ ├── ./Python/project_euler/problem_072
│ │ │ ├── ./Python/project_euler/problem_072/__init__.py
│ │ │ ├── ./Python/project_euler/problem_072/sol1.py
│ │ │ └── ./Python/project_euler/problem_072/sol2.py
│ │ ├── ./Python/project_euler/problem_074
│ │ │ ├── ./Python/project_euler/problem_074/__init__.py
│ │ │ ├── ./Python/project_euler/problem_074/sol1.py
│ │ │ └── ./Python/project_euler/problem_074/sol2.py
│ │ ├── ./Python/project_euler/problem_075
│ │ │ ├── ./Python/project_euler/problem_075/__init__.py
│ │ │ └── ./Python/project_euler/problem_075/sol1.py
│ │ ├── ./Python/project_euler/problem_076
│ │ │ ├── ./Python/project_euler/problem_076/__init__.py
│ │ │ └── ./Python/project_euler/problem_076/sol1.py
│ │ ├── ./Python/project_euler/problem_077
│ │ │ ├── ./Python/project_euler/problem_077/__init__.py
│ │ │ └── ./Python/project_euler/problem_077/sol1.py
│ │ ├── ./Python/project_euler/problem_080
│ │ │ ├── ./Python/project_euler/problem_080/__init__.py
│ │ │ └── ./Python/project_euler/problem_080/sol1.py
│ │ ├── ./Python/project_euler/problem_081
│ │ │ ├── ./Python/project_euler/problem_081/__init__.py
│ │ │ ├── ./Python/project_euler/problem_081/matrix.txt
│ │ │ └── ./Python/project_euler/problem_081/sol1.py
│ │ ├── ./Python/project_euler/problem_085
│ │ │ ├── ./Python/project_euler/problem_085/__init__.py
│ │ │ └── ./Python/project_euler/problem_085/sol1.py
│ │ ├── ./Python/project_euler/problem_086
│ │ │ ├── ./Python/project_euler/problem_086/__init__.py
│ │ │ └── ./Python/project_euler/problem_086/sol1.py
│ │ ├── ./Python/project_euler/problem_087
│ │ │ ├── ./Python/project_euler/problem_087/__init__.py
│ │ │ └── ./Python/project_euler/problem_087/sol1.py
│ │ ├── ./Python/project_euler/problem_089
│ │ │ ├── ./Python/project_euler/problem_089/__init__.py
│ │ │ ├── ./Python/project_euler/problem_089/numeralcleanup_test.txt
│ │ │ ├── ./Python/project_euler/problem_089/p089_roman.txt
│ │ │ └── ./Python/project_euler/problem_089/sol1.py
│ │ ├── ./Python/project_euler/problem_091
│ │ │ ├── ./Python/project_euler/problem_091/__init__.py
│ │ │ └── ./Python/project_euler/problem_091/sol1.py
│ │ ├── ./Python/project_euler/problem_097
│ │ │ ├── ./Python/project_euler/problem_097/__init__.py
│ │ │ └── ./Python/project_euler/problem_097/sol1.py
│ │ ├── ./Python/project_euler/problem_099
│ │ │ ├── ./Python/project_euler/problem_099/base_exp.txt
│ │ │ ├── ./Python/project_euler/problem_099/__init__.py
│ │ │ └── ./Python/project_euler/problem_099/sol1.py
│ │ ├── ./Python/project_euler/problem_101
│ │ │ ├── ./Python/project_euler/problem_101/__init__.py
│ │ │ └── ./Python/project_euler/problem_101/sol1.py
│ │ ├── ./Python/project_euler/problem_102
│ │ │ ├── ./Python/project_euler/problem_102/__init__.py
│ │ │ ├── ./Python/project_euler/problem_102/p102_triangles.txt
│ │ │ ├── ./Python/project_euler/problem_102/sol1.py
│ │ │ └── ./Python/project_euler/problem_102/test_triangles.txt
│ │ ├── ./Python/project_euler/problem_107
│ │ │ ├── ./Python/project_euler/problem_107/__init__.py
│ │ │ ├── ./Python/project_euler/problem_107/p107_network.txt
│ │ │ ├── ./Python/project_euler/problem_107/sol1.py
│ │ │ └── ./Python/project_euler/problem_107/test_network.txt
│ │ ├── ./Python/project_euler/problem_109
│ │ │ ├── ./Python/project_euler/problem_109/__init__.py
│ │ │ └── ./Python/project_euler/problem_109/sol1.py
│ │ ├── ./Python/project_euler/problem_112
│ │ │ ├── ./Python/project_euler/problem_112/__init__.py
│ │ │ └── ./Python/project_euler/problem_112/sol1.py
│ │ ├── ./Python/project_euler/problem_113
│ │ │ ├── ./Python/project_euler/problem_113/__init__.py
│ │ │ └── ./Python/project_euler/problem_113/sol1.py
│ │ ├── ./Python/project_euler/problem_119
│ │ │ ├── ./Python/project_euler/problem_119/__init__.py
│ │ │ └── ./Python/project_euler/problem_119/sol1.py
│ │ ├── ./Python/project_euler/problem_120
│ │ │ ├── ./Python/project_euler/problem_120/__init__.py
│ │ │ └── ./Python/project_euler/problem_120/sol1.py
│ │ ├── ./Python/project_euler/problem_121
│ │ │ ├── ./Python/project_euler/problem_121/__init__.py
│ │ │ └── ./Python/project_euler/problem_121/sol1.py
│ │ ├── ./Python/project_euler/problem_123
│ │ │ ├── ./Python/project_euler/problem_123/__init__.py
│ │ │ └── ./Python/project_euler/problem_123/sol1.py
│ │ ├── ./Python/project_euler/problem_125
│ │ │ ├── ./Python/project_euler/problem_125/__init__.py
│ │ │ └── ./Python/project_euler/problem_125/sol1.py
│ │ ├── ./Python/project_euler/problem_129
│ │ │ ├── ./Python/project_euler/problem_129/__init__.py
│ │ │ └── ./Python/project_euler/problem_129/sol1.py
│ │ ├── ./Python/project_euler/problem_135
│ │ │ ├── ./Python/project_euler/problem_135/__init__.py
│ │ │ └── ./Python/project_euler/problem_135/sol1.py
│ │ ├── ./Python/project_euler/problem_144
│ │ │ ├── ./Python/project_euler/problem_144/__init__.py
│ │ │ └── ./Python/project_euler/problem_144/sol1.py
│ │ ├── ./Python/project_euler/problem_173
│ │ │ ├── ./Python/project_euler/problem_173/__init__.py
│ │ │ └── ./Python/project_euler/problem_173/sol1.py
│ │ ├── ./Python/project_euler/problem_174
│ │ │ ├── ./Python/project_euler/problem_174/__init__.py
│ │ │ └── ./Python/project_euler/problem_174/sol1.py
│ │ ├── ./Python/project_euler/problem_180
│ │ │ ├── ./Python/project_euler/problem_180/__init__.py
│ │ │ └── ./Python/project_euler/problem_180/sol1.py
│ │ ├── ./Python/project_euler/problem_188
│ │ │ ├── ./Python/project_euler/problem_188/__init__.py
│ │ │ └── ./Python/project_euler/problem_188/sol1.py
│ │ ├── ./Python/project_euler/problem_191
│ │ │ ├── ./Python/project_euler/problem_191/__init__.py
│ │ │ └── ./Python/project_euler/problem_191/sol1.py
│ │ ├── ./Python/project_euler/problem_203
│ │ │ ├── ./Python/project_euler/problem_203/__init__.py
│ │ │ └── ./Python/project_euler/problem_203/sol1.py
│ │ ├── ./Python/project_euler/problem_206
│ │ │ ├── ./Python/project_euler/problem_206/__init__.py
│ │ │ └── ./Python/project_euler/problem_206/sol1.py
│ │ ├── ./Python/project_euler/problem_207
│ │ │ ├── ./Python/project_euler/problem_207/__init__.py
│ │ │ └── ./Python/project_euler/problem_207/sol1.py
│ │ ├── ./Python/project_euler/problem_234
│ │ │ ├── ./Python/project_euler/problem_234/__init__.py
│ │ │ └── ./Python/project_euler/problem_234/sol1.py
│ │ ├── ./Python/project_euler/problem_301
│ │ │ ├── ./Python/project_euler/problem_301/__init__.py
│ │ │ └── ./Python/project_euler/problem_301/sol1.py
│ │ ├── ./Python/project_euler/problem_551
│ │ │ ├── ./Python/project_euler/problem_551/__init__.py
│ │ │ └── ./Python/project_euler/problem_551/sol1.py
│ │ ├── ./Python/project_euler/README.html
│ │ └── ./Python/project_euler/README.md
│ ├── ./Python/pytest.ini
│ ├── ./Python/quantum
│ │ ├── ./Python/quantum/deutsch_jozsa.py
│ │ ├── ./Python/quantum/half_adder.py
│ │ ├── ./Python/quantum/__init__.py
│ │ ├── ./Python/quantum/not_gate.py
│ │ ├── ./Python/quantum/quantum_entanglement.py
│ │ ├── ./Python/quantum/README.html
│ │ ├── ./Python/quantum/README.md
│ │ ├── ./Python/quantum/ripple_adder_classic.py
│ │ └── ./Python/quantum/single_qubit_measure.py
│ ├── ./Python/README.html
│ ├── ./Python/README.md
│ ├── ./Python/requirements.txt
│ ├── ./Python/scheduling
│ │ ├── ./Python/scheduling/first_come_first_served.py
│ │ ├── ./Python/scheduling/__init__.py
│ │ ├── ./Python/scheduling/round_robin.py
│ │ └── ./Python/scheduling/shortest_job_first.py
│ ├── ./Python/scripts
│ │ ├── ./Python/scripts/build_directory_md.py
│ │ ├── ./Python/scripts/__init__.py
│ │ ├── ./Python/scripts/project_euler_answers.json
│ │ ├── ./Python/scripts/validate_filenames.py
│ │ └── ./Python/scripts/validate_solutions.py
│ ├── ./Python/searches
│ │ ├── ./Python/searches/binary_search.py
│ │ ├── ./Python/searches/binary_tree_traversal.py
│ │ ├── ./Python/searches/double_linear_search.py
│ │ ├── ./Python/searches/double_linear_search_recursion.py
│ │ ├── ./Python/searches/fibonacci_search.py
│ │ ├── ./Python/searches/hill_climbing.py
│ │ ├── ./Python/searches/__init__.py
│ │ ├── ./Python/searches/interpolation_search.py
│ │ ├── ./Python/searches/jump_search.py
│ │ ├── ./Python/searches/linear_search.py
│ │ ├── ./Python/searches/quick_select.py
│ │ ├── ./Python/searches/sentinel_linear_search.py
│ │ ├── ./Python/searches/simple_binary_search.py
│ │ ├── ./Python/searches/simulated_annealing.py
│ │ ├── ./Python/searches/tabu_search.py
│ │ ├── ./Python/searches/tabu_test_data.txt
│ │ └── ./Python/searches/ternary_search.py
│ ├── ./Python/sorts
│ │ ├── ./Python/sorts/bead_sort.py
│ │ ├── ./Python/sorts/bitonic_sort.py
│ │ ├── ./Python/sorts/bogo_sort.py
│ │ ├── ./Python/sorts/bubble_sort.py
│ │ ├── ./Python/sorts/bucket_sort.py
│ │ ├── ./Python/sorts/cocktail_shaker_sort.py
│ │ ├── ./Python/sorts/comb_sort.py
│ │ ├── ./Python/sorts/counting_sort.py
│ │ ├── ./Python/sorts/cycle_sort.py
│ │ ├── ./Python/sorts/double_sort.py
│ │ ├── ./Python/sorts/external_sort.py
│ │ ├── ./Python/sorts/gnome_sort.py
│ │ ├── ./Python/sorts/heap_sort.py
│ │ ├── ./Python/sorts/__init__.py
│ │ ├── ./Python/sorts/insertion_sort.py
│ │ ├── ./Python/sorts/intro_sort.py
│ │ ├── ./Python/sorts/iterative_merge_sort.py
│ │ ├── ./Python/sorts/merge_insertion_sort.py
│ │ ├── ./Python/sorts/merge_sort.py
│ │ ├── ./Python/sorts/msd_radix_sort.py
│ │ ├── ./Python/sorts/natural_sort.py
│ │ ├── ./Python/sorts/normal_distribution_quick_sort.html
│ │ ├── ./Python/sorts/normal_distribution_quick_sort.md
│ │ ├── ./Python/sorts/odd_even_sort.py
│ │ ├── ./Python/sorts/odd_even_transposition_parallel.py
│ │ ├── ./Python/sorts/odd_even_transposition_single_threaded.py
│ │ ├── ./Python/sorts/pancake_sort.py
│ │ ├── ./Python/sorts/patience_sort.py
│ │ ├── ./Python/sorts/pigeonhole_sort.py
│ │ ├── ./Python/sorts/pigeon_sort.py
│ │ ├── ./Python/sorts/quick_sort_3_partition.py
│ │ ├── ./Python/sorts/quick_sort.py
│ │ ├── ./Python/sorts/radix_sort.py
│ │ ├── ./Python/sorts/random_normal_distribution_quicksort.py
│ │ ├── ./Python/sorts/random_pivot_quick_sort.py
│ │ ├── ./Python/sorts/recursive_bubble_sort.py
│ │ ├── ./Python/sorts/recursive_insertion_sort.py
│ │ ├── ./Python/sorts/recursive_mergesort_array.py
│ │ ├── ./Python/sorts/recursive_quick_sort.py
│ │ ├── ./Python/sorts/selection_sort.py
│ │ ├── ./Python/sorts/shell_sort.py
│ │ ├── ./Python/sorts/slowsort.py
│ │ ├── ./Python/sorts/stooge_sort.py
│ │ ├── ./Python/sorts/strand_sort.py
│ │ ├── ./Python/sorts/tim_sort.py
│ │ ├── ./Python/sorts/topological_sort.py
│ │ ├── ./Python/sorts/tree_sort.py
│ │ ├── ./Python/sorts/unknown_sort.py
│ │ └── ./Python/sorts/wiggle_sort.py
│ ├── ./Python/strings
│ │ ├── ./Python/strings/aho_corasick.py
│ │ ├── ./Python/strings/alternative_string_arrange.py
│ │ ├── ./Python/strings/anagrams.py
│ │ ├── ./Python/strings/autocomplete_using_trie.py
│ │ ├── ./Python/strings/boyer_moore_search.py
│ │ ├── ./Python/strings/can_string_be_rearranged_as_palindrome.py
│ │ ├── ./Python/strings/capitalize.py
│ │ ├── ./Python/strings/check_anagrams.py
│ │ ├── ./Python/strings/check_pangram.py
│ │ ├── ./Python/strings/detecting_english_programmatically.py
│ │ ├── ./Python/strings/frequency_finder.py
│ │ ├── ./Python/strings/indian_phone_validator.py
│ │ ├── ./Python/strings/__init__.py
│ │ ├── ./Python/strings/is_palindrome.py
│ │ ├── ./Python/strings/jaro_winkler.py
│ │ ├── ./Python/strings/knuth_morris_pratt.py
│ │ ├── ./Python/strings/levenshtein_distance.py
│ │ ├── ./Python/strings/lower.py
│ │ ├── ./Python/strings/manacher.py
│ │ ├── ./Python/strings/min_cost_string_conversion.py
│ │ ├── ./Python/strings/naive_string_search.py
│ │ ├── ./Python/strings/palindrome.py
│ │ ├── ./Python/strings/prefix_function.py
│ │ ├── ./Python/strings/rabin_karp.py
│ │ ├── ./Python/strings/remove_duplicate.py
│ │ ├── ./Python/strings/reverse_letters.py
│ │ ├── ./Python/strings/reverse_words.py
│ │ ├── ./Python/strings/split.py
│ │ ├── ./Python/strings/swap_case.py
│ │ ├── ./Python/strings/upper.py
│ │ ├── ./Python/strings/word_occurrence.py
│ │ ├── ./Python/strings/word_patterns.py
│ │ └── ./Python/strings/z_function.py
│ └── ./Python/web_programming
│ ├── ./Python/web_programming/co2_emission.py
│ ├── ./Python/web_programming/covid_stats_via_xpath.py
│ ├── ./Python/web_programming/crawl_google_results.py
│ ├── ./Python/web_programming/crawl_google_scholar_citation.py
│ ├── ./Python/web_programming/currency_converter.py
│ ├── ./Python/web_programming/current_stock_price.py
│ ├── ./Python/web_programming/current_weather.py
│ ├── ./Python/web_programming/daily_horoscope.py
│ ├── ./Python/web_programming/emails_from_url.py
│ ├── ./Python/web_programming/fetch_bbc_news.py
│ ├── ./Python/web_programming/fetch_github_info.py
│ ├── ./Python/web_programming/fetch_jobs.py
│ ├── ./Python/web_programming/get_imdb_top_250_movies_csv.py
│ ├── ./Python/web_programming/get_imdbtop.py
│ ├── ./Python/web_programming/__init__.py
│ ├── ./Python/web_programming/instagram_crawler.py
│ ├── ./Python/web_programming/instagram_pic.py
│ ├── ./Python/web_programming/instagram_video.py
│ ├── ./Python/web_programming/random_anime_character.py
│ ├── ./Python/web_programming/recaptcha_verification.py
│ ├── ./Python/web_programming/slack_message.py
│ ├── ./Python/web_programming/test_fetch_github_info.py
│ └── ./Python/web_programming/world_covid19_stats.py
├── ./R
│ ├── ./R/Association-Algorithms
│ │ └── ./R/Association-Algorithms/apriori.R
│ ├── ./R/Classification-Algorithms
│ │ ├── ./R/Classification-Algorithms/decision_tree.R
│ │ ├── ./R/Classification-Algorithms/gradient_boosting_algorithms.R
│ │ ├── ./R/Classification-Algorithms/KNN.R
│ │ ├── ./R/Classification-Algorithms/lasso.R
│ │ ├── ./R/Classification-Algorithms/LightGBM.R
│ │ ├── ./R/Classification-Algorithms/naive_bayes.R
│ │ ├── ./R/Classification-Algorithms/random_forest.R
│ │ ├── ./R/Classification-Algorithms/SVM.R
│ │ └── ./R/Classification-Algorithms/xgboost.R
│ ├── ./R/Clustering-Algorithms
│ │ ├── ./R/Clustering-Algorithms/dbscan_clustering.R
│ │ ├── ./R/Clustering-Algorithms/gmm.R
│ │ ├── ./R/Clustering-Algorithms/heirarchical_clustering.R
│ │ ├── ./R/Clustering-Algorithms/kmeans_clustering.R
│ │ ├── ./R/Clustering-Algorithms/K-Means.R
│ │ ├── ./R/Clustering-Algorithms/kmeans_raw_R.R
│ │ └── ./R/Clustering-Algorithms/pam.R
│ ├── ./R/Data-Manipulation
│ │ ├── ./R/Data-Manipulation/LabelEncode.R
│ │ └── ./R/Data-Manipulation/OneHotEncode.R
│ ├── ./R/Data-Mining
│ │ ├── ./R/Data-Mining/README.html
│ │ └── ./R/Data-Mining/README.md
│ ├── ./R/Data-Preprocessing
│ │ ├── ./R/Data-Preprocessing/data_normalization_standardization.R
│ │ ├── ./R/Data-Preprocessing/data_processing.R
│ │ ├── ./R/Data-Preprocessing/dimensionality_reduction_algorithms.R
│ │ ├── ./R/Data-Preprocessing/K_Folds.R
│ │ └── ./R/Data-Preprocessing/lasso.R
│ ├── ./R/DIRECTORY.html
│ ├── ./R/DIRECTORY.md
│ ├── ./R/Machine-Learning
│ │ ├── ./R/Machine-Learning/README.html
│ │ └── ./R/Machine-Learning/README.md
│ ├── ./R/Mathematics
│ │ ├── ./R/Mathematics/EuclideanDistance.R
│ │ ├── ./R/Mathematics/Factorial.R
│ │ ├── ./R/Mathematics/Fibonacci.R
│ │ ├── ./R/Mathematics/PerfectSquare.R
│ │ ├── ./R/Mathematics/PiMonteCarlo.R
│ │ └── ./R/Mathematics/Prime.R
│ ├── ./R/README.html
│ ├── ./R/README.md
│ ├── ./R/Regression-Algorithms
│ │ ├── ./R/Regression-Algorithms/ANN.R
│ │ ├── ./R/Regression-Algorithms/gradient_boosting_algorithms.R
│ │ ├── ./R/Regression-Algorithms/KNN.R
│ │ ├── ./R/Regression-Algorithms/LightGBM.R
│ │ ├── ./R/Regression-Algorithms/linear_regression.R
│ │ ├── ./R/Regression-Algorithms/linearRegressionRawR.R
│ │ ├── ./R/Regression-Algorithms/logistic_regression2.R
│ │ ├── ./R/Regression-Algorithms/logistic_regression.R
│ │ └── ./R/Regression-Algorithms/multiple_linear_regression.R
│ └── ./R/Sorting-Algorithms
│ ├── ./R/Sorting-Algorithms/bubble_sort.R
│ ├── ./R/Sorting-Algorithms/comb_sort.R
│ ├── ./R/Sorting-Algorithms/heap_sort.R
│ ├── ./R/Sorting-Algorithms/insertion_sort.R
│ ├── ./R/Sorting-Algorithms/merge_sort.R
│ ├── ./R/Sorting-Algorithms/quick_sort.R
│ ├── ./R/Sorting-Algorithms/radix_sort.R
│ ├── ./R/Sorting-Algorithms/selection_sort.R
│ └── ./R/Sorting-Algorithms/stooge_sort.R
├── ./README.md
├── ./Ruby
│ ├── ./Ruby/backtracking
│ │ └── ./Ruby/backtracking/generate_paranthesis.rb
│ ├── ./Ruby/bit_manipulation
│ │ ├── ./Ruby/bit_manipulation/binary_and_operator.rb
│ │ ├── ./Ruby/bit_manipulation/binary_count_setbits.rb
│ │ ├── ./Ruby/bit_manipulation/binary_count_trailing_zeroes.rb
│ │ ├── ./Ruby/bit_manipulation/binary_or_operator.rb
│ │ ├── ./Ruby/bit_manipulation/binary_xor_operator.rb
│ │ ├── ./Ruby/bit_manipulation/power_of_two.rb
│ │ └── ./Ruby/bit_manipulation/single_bit_binary_operations.rb
│ ├── ./Ruby/ciphers
│ │ └── ./Ruby/ciphers/merkle_hellman_cryptosystem.rb
│ ├── ./Ruby/conversions
│ │ ├── ./Ruby/conversions/temperature_conversions.rb
│ │ └── ./Ruby/conversions/weight_conversions.rb
│ ├── ./Ruby/data_structures
│ │ ├── ./Ruby/data_structures/arrays
│ │ │ ├── ./Ruby/data_structures/arrays/add_digits.rb
│ │ │ ├── ./Ruby/data_structures/arrays/find_all_duplicates_in_an_array.rb
│ │ │ ├── ./Ruby/data_structures/arrays/find_the_highest_altitude.rb
│ │ │ ├── ./Ruby/data_structures/arrays/fizz_buzz.rb
│ │ │ ├── ./Ruby/data_structures/arrays/get_products_of_all_other_elements.rb
│ │ │ ├── ./Ruby/data_structures/arrays/good_pairs.rb
│ │ │ ├── ./Ruby/data_structures/arrays/intersection.rb
│ │ │ ├── ./Ruby/data_structures/arrays/next_greater_element.rb
│ │ │ ├── ./Ruby/data_structures/arrays/remove_elements.rb
│ │ │ ├── ./Ruby/data_structures/arrays/richest_customer_wealth.rb
│ │ │ ├── ./Ruby/data_structures/arrays/shortest_word_distance.rb
│ │ │ ├── ./Ruby/data_structures/arrays/shuffle_array.rb
│ │ │ ├── ./Ruby/data_structures/arrays/single_number.rb
│ │ │ ├── ./Ruby/data_structures/arrays/sorted_arrays_intersection.rb
│ │ │ ├── ./Ruby/data_structures/arrays/sort_squares_of_an_array.rb
│ │ │ ├── ./Ruby/data_structures/arrays/strings
│ │ │ ├── ./Ruby/data_structures/arrays/sudoku.rb
│ │ │ ├── ./Ruby/data_structures/arrays/two_sum_ii.rb
│ │ │ └── ./Ruby/data_structures/arrays/two_sum.rb
│ │ ├── ./Ruby/data_structures/binary_trees
│ │ │ ├── ./Ruby/data_structures/binary_trees/inorder_traversal.rb
│ │ │ ├── ./Ruby/data_structures/binary_trees/invert.rb
│ │ │ ├── ./Ruby/data_structures/binary_trees/postorder_traversal.rb
│ │ │ └── ./Ruby/data_structures/binary_trees/preorder_traversal.rb
│ │ ├── ./Ruby/data_structures/hash_table
│ │ │ ├── ./Ruby/data_structures/hash_table/anagram_checker.rb
│ │ │ ├── ./Ruby/data_structures/hash_table/arrays_intersection.rb
│ │ │ ├── ./Ruby/data_structures/hash_table/common_characters.rb
│ │ │ ├── ./Ruby/data_structures/hash_table/find_all_duplicates_in_an_array.rb
│ │ │ ├── ./Ruby/data_structures/hash_table/good_pairs.rb
│ │ │ ├── ./Ruby/data_structures/hash_table/isomorphic_strings.rb
│ │ │ ├── ./Ruby/data_structures/hash_table/richest_customer_wealth.rb
│ │ │ ├── ./Ruby/data_structures/hash_table/two_sum.rb
│ │ │ └── ./Ruby/data_structures/hash_table/uncommon_words.rb
│ │ ├── ./Ruby/data_structures/linked_lists
│ │ │ ├── ./Ruby/data_structures/linked_lists/circular_linked_list.rb
│ │ │ ├── ./Ruby/data_structures/linked_lists/doubly_linked_list.rb
│ │ │ └── ./Ruby/data_structures/linked_lists/singly_linked_list.rb
│ │ ├── ./Ruby/data_structures/queues
│ │ │ ├── ./Ruby/data_structures/queues/circular_queue.rb
│ │ │ └── ./Ruby/data_structures/queues/queue.rb
│ │ ├── ./Ruby/data_structures/stacks
│ │ │ └── ./Ruby/data_structures/stacks/stack.rb
│ │ └── ./Ruby/data_structures/tries
│ │ └── ./Ruby/data_structures/tries/trie.rb
│ ├── ./Ruby/DIRECTORY.html
│ ├── ./Ruby/DIRECTORY.md
│ ├── ./Ruby/discrete_mathematics
│ │ ├── ./Ruby/discrete_mathematics/euclidean_gcd.rb
│ │ ├── ./Ruby/discrete_mathematics/exteded_euclidean_algorithm.rb
│ │ └── ./Ruby/discrete_mathematics/lcm.rb
│ ├── ./Ruby/dynamic_programming
│ │ ├── ./Ruby/dynamic_programming/coin_change.rb
│ │ ├── ./Ruby/dynamic_programming/count_sorted_vowel_strings.rb
│ │ ├── ./Ruby/dynamic_programming/fibonacci.rb
│ │ └── ./Ruby/dynamic_programming/pascal_triangle_ii.rb
│ ├── ./Ruby/maths
│ │ ├── ./Ruby/maths/abs_max.rb
│ │ ├── ./Ruby/maths/abs_min.rb
│ │ ├── ./Ruby/maths/abs.rb
│ │ ├── ./Ruby/maths/abs_test.rb
│ │ ├── ./Ruby/maths/add_digits.rb
│ │ ├── ./Ruby/maths/add.rb
│ │ ├── ./Ruby/maths/aliquot_sum.rb
│ │ ├── ./Ruby/maths/aliquot_sum_test.rb
│ │ ├── ./Ruby/maths/armstrong_number.rb
│ │ ├── ./Ruby/maths/average_mean.rb
│ │ ├── ./Ruby/maths/average_median.rb
│ │ ├── ./Ruby/maths/binary_to_decimal.rb
│ │ ├── ./Ruby/maths/ceil.rb
│ │ ├── ./Ruby/maths/ceil_test.rb
│ │ ├── ./Ruby/maths/count_sorted_vowel_strings.rb
│ │ ├── ./Ruby/maths/decimal_to_binary.rb
│ │ ├── ./Ruby/maths/factorial_non_recursive_non_iterative.rb
│ │ ├── ./Ruby/maths/factorial.rb
│ │ ├── ./Ruby/maths/fibonacci.rb
│ │ ├── ./Ruby/maths/find_max.rb
│ │ ├── ./Ruby/maths/find_min.rb
│ │ ├── ./Ruby/maths/lucas_series.rb
│ │ ├── ./Ruby/maths/number_of_digits.rb
│ │ ├── ./Ruby/maths/pascal_triangle_ii.rb
│ │ ├── ./Ruby/maths/power_of_two.rb
│ │ ├── ./Ruby/maths/prime_number.rb
│ │ ├── ./Ruby/maths/roman_to_integer.rb
│ │ ├── ./Ruby/maths/square_root.rb
│ │ ├── ./Ruby/maths/square_root_test.rb
│ │ └── ./Ruby/maths/sum_of_digits.rb
│ ├── ./Ruby/other
│ │ └── ./Ruby/other/fisher_yates.rb
│ ├── ./Ruby/project_euler
│ │ ├── ./Ruby/project_euler/problem_1
│ │ │ └── ./Ruby/project_euler/problem_1/sol1.rb
│ │ ├── ./Ruby/project_euler/problem_2
│ │ │ └── ./Ruby/project_euler/problem_2/sol1.rb
│ │ ├── ./Ruby/project_euler/problem_20
│ │ │ └── ./Ruby/project_euler/problem_20/sol1.rb
│ │ ├── ./Ruby/project_euler/problem_21
│ │ │ └── ./Ruby/project_euler/problem_21/sol1.rb
│ │ ├── ./Ruby/project_euler/problem_22
│ │ │ ├── ./Ruby/project_euler/problem_22/p022_names.txt
│ │ │ └── ./Ruby/project_euler/problem_22/sol1.rb
│ │ ├── ./Ruby/project_euler/problem_3
│ │ │ ├── ./Ruby/project_euler/problem_3/sol1.rb
│ │ │ └── ./Ruby/project_euler/problem_3/sol2.rb
│ │ ├── ./Ruby/project_euler/problem_4
│ │ │ ├── ./Ruby/project_euler/problem_4/sol1.rb
│ │ │ └── ./Ruby/project_euler/problem_4/sol2.rb
│ │ ├── ./Ruby/project_euler/problem_5
│ │ │ └── ./Ruby/project_euler/problem_5/sol1.rb
│ │ ├── ./Ruby/project_euler/README.html
│ │ └── ./Ruby/project_euler/README.md
│ ├── ./Ruby/Rakefile
│ ├── ./Ruby/README.html
│ ├── ./Ruby/README.md
│ ├── ./Ruby/searches
│ │ ├── ./Ruby/searches/binary_search.rb
│ │ ├── ./Ruby/searches/depth_first_search.rb
│ │ ├── ./Ruby/searches/double_linear_search.rb
│ │ ├── ./Ruby/searches/jump_search.rb
│ │ ├── ./Ruby/searches/linear_search.rb
│ │ ├── ./Ruby/searches/recursive_double_linear_search.rb
│ │ ├── ./Ruby/searches/recursive_linear_search.rb
│ │ └── ./Ruby/searches/ternary_search.rb
│ └── ./Ruby/sorting
│ ├── ./Ruby/sorting/bead_sort.rb
│ ├── ./Ruby/sorting/bead_sort_test.rb
│ ├── ./Ruby/sorting/bogo_sort.rb
│ ├── ./Ruby/sorting/bogo_sort_test.rb
│ ├── ./Ruby/sorting/bubble_sort.rb
│ ├── ./Ruby/sorting/bubble_sort_test.rb
│ ├── ./Ruby/sorting/bucket_sort.rb
│ ├── ./Ruby/sorting/bucket_sort_test.rb
│ ├── ./Ruby/sorting/cocktail_sort.rb
│ ├── ./Ruby/sorting/cocktail_sort_test.rb
│ ├── ./Ruby/sorting/comb_sort.rb
│ ├── ./Ruby/sorting/comb_sort_test.rb
│ ├── ./Ruby/sorting/heap_sort.rb
│ ├── ./Ruby/sorting/heap_sort_test.rb
│ ├── ./Ruby/sorting/insertion_sort.rb
│ ├── ./Ruby/sorting/insertion_sort_test.rb
│ ├── ./Ruby/sorting/merge_sort.rb
│ ├── ./Ruby/sorting/merge_sort_test.rb
│ ├── ./Ruby/sorting/pancake_sort.rb
│ ├── ./Ruby/sorting/pancake_sort_test.rb
│ ├── ./Ruby/sorting/quicksort.rb
│ ├── ./Ruby/sorting/quicksort_test.rb
│ ├── ./Ruby/sorting/radix_sort.rb
│ ├── ./Ruby/sorting/radix_sort_test.rb
│ ├── ./Ruby/sorting/selection_sort.rb
│ ├── ./Ruby/sorting/selection_sort_test.rb
│ ├── ./Ruby/sorting/shell_sort.rb
│ ├── ./Ruby/sorting/shell_sort_test.rb
│ ├── ./Ruby/sorting/sort_color.rb
│ └── ./Ruby/sorting/sort_tests.rb
├── ./Rust
│ ├── ./Rust/Cargo.toml
│ ├── ./Rust/DIRECTORY.html
│ ├── ./Rust/DIRECTORY.md
│ ├── ./Rust/git_hooks
│ │ └── ./Rust/git_hooks/pre-commit
│ ├── ./Rust/README.html
│ ├── ./Rust/README.md
│ └── ./Rust/src
│ ├── ./Rust/src/ciphers
│ │ ├── ./Rust/src/ciphers/caesar.rs
│ │ ├── ./Rust/src/ciphers/mod.rs
│ │ ├── ./Rust/src/ciphers/README.html
│ │ ├── ./Rust/src/ciphers/README.md
│ │ ├── ./Rust/src/ciphers/rot13.rs
│ │ └── ./Rust/src/ciphers/vigenere.rs
│ ├── ./Rust/src/data_structures
│ │ ├── ./Rust/src/data_structures/binary_search_tree.rs
│ │ ├── ./Rust/src/data_structures/b_tree.rs
│ │ ├── ./Rust/src/data_structures/heap.rs
│ │ ├── ./Rust/src/data_structures/linked_list.rs
│ │ ├── ./Rust/src/data_structures/mod.rs
│ │ ├── ./Rust/src/data_structures/README.html
│ │ └── ./Rust/src/data_structures/README.md
│ ├── ./Rust/src/dynamic_programming
│ │ ├── ./Rust/src/dynamic_programming/edit_distance.rs
│ │ ├── ./Rust/src/dynamic_programming/egg_dropping.rs
│ │ ├── ./Rust/src/dynamic_programming/fibonacci.rs
│ │ ├── ./Rust/src/dynamic_programming/knapsack.rs
│ │ ├── ./Rust/src/dynamic_programming/longest_common_subsequence.rs
│ │ └── ./Rust/src/dynamic_programming/mod.rs
│ ├── ./Rust/src/general
│ │ ├── ./Rust/src/general/convex_hull.rs
│ │ ├── ./Rust/src/general/hanoi.rs
│ │ ├── ./Rust/src/general/kmeans.rs
│ │ └── ./Rust/src/general/mod.rs
│ ├── ./Rust/src/lib.rs
│ ├── ./Rust/src/searching
│ │ ├── ./Rust/src/searching/binary_search.rs
│ │ ├── ./Rust/src/searching/linear_search.rs
│ │ ├── ./Rust/src/searching/mod.rs
│ │ ├── ./Rust/src/searching/README.html
│ │ └── ./Rust/src/searching/README.md
│ ├── ./Rust/src/sorting
│ │ ├── ./Rust/src/sorting/bubble_sort.rs
│ │ ├── ./Rust/src/sorting/counting_sort.rs
│ │ ├── ./Rust/src/sorting/heap_sort.rs
│ │ ├── ./Rust/src/sorting/insertion.rs
│ │ ├── ./Rust/src/sorting/merge_sort.rs
│ │ ├── ./Rust/src/sorting/mod.rs
│ │ ├── ./Rust/src/sorting/quick_sort.rs
│ │ ├── ./Rust/src/sorting/radix_sort.rs
│ │ ├── ./Rust/src/sorting/README.html
│ │ ├── ./Rust/src/sorting/README.md
│ │ ├── ./Rust/src/sorting/selection_sort.rs
│ │ └── ./Rust/src/sorting/shell_sort.rs
│ └── ./Rust/src/string
│ ├── ./Rust/src/string/knuth_morris_pratt.rs
│ ├── ./Rust/src/string/mod.rs
│ ├── ./Rust/src/string/README.html
│ └── ./Rust/src/string/README.md
├── ./Scala
│ ├── ./Scala/Algorithms Visualization.html
│ ├── ./Scala/Algorithms Visualization.md
│ ├── ./Scala/build.sbt
│ ├── ./Scala/DIRECTORY.html
│ ├── ./Scala/DIRECTORY.md
│ ├── ./Scala/License
│ ├── ./Scala/project
│ │ ├── ./Scala/project/build.properties
│ │ └── ./Scala/project/plugins.sbt
│ ├── ./Scala/Readme.html
│ ├── ./Scala/Readme.md
│ └── ./Scala/src
│ ├── ./Scala/src/main
│ │ └── ./Scala/src/main/scala
│ └── ./Scala/src/test
│ └── ./Scala/src/test/scala
├── ./scrap.md
├── ./scripts
│ ├── ./scripts/build_directory_md.py
│ ├── ./scripts/README.html
│ └── ./scripts/README.md
├── ./Swift
│ ├── ./Swift/algorithms
│ │ └── ./Swift/algorithms/parsing
│ │ └── ./Swift/algorithms/parsing/shunting_yard
│ ├── ./Swift/data_structures
│ │ ├── ./Swift/data_structures/heap
│ │ │ └── ./Swift/data_structures/heap/heap.swift
│ │ ├── ./Swift/data_structures/Linked List
│ │ │ └── ./Swift/data_structures/Linked List/LinkedList.swift
│ │ ├── ./Swift/data_structures/queue
│ │ │ └── ./Swift/data_structures/queue/queue.swift
│ │ ├── ./Swift/data_structures/Stack
│ │ │ └── ./Swift/data_structures/Stack/stack.swift
│ │ └── ./Swift/data_structures/union_find
│ │ └── ./Swift/data_structures/union_find/union_find.swift
│ ├── ./Swift/DIRECTORY.html
│ ├── ./Swift/DIRECTORY.md
│ ├── ./Swift/graph
│ │ └── ./Swift/graph/spanning_tree
│ │ └── ./Swift/graph/spanning_tree/kruskal.swift
│ ├── ./Swift/README.html
│ ├── ./Swift/README.md
│ ├── ./Swift/recursion
│ │ └── ./Swift/recursion/fibonacci.swift
│ ├── ./Swift/sorts
│ │ ├── ./Swift/sorts/BubbleSort.swift
│ │ ├── ./Swift/sorts/InsertionSort.swift
│ │ ├── ./Swift/sorts/MergeSort.swift
│ │ ├── ./Swift/sorts/QuickSort.swift
│ │ └── ./Swift/sorts/SelectionSort.swift
│ └── ./Swift/trees
│ └── ./Swift/trees/tree.swift
├── ./TheAlgorithms.github.io
│ ├── ./TheAlgorithms.github.io/ideas.html
│ ├── ./TheAlgorithms.github.io/images
│ │ └── ./TheAlgorithms.github.io/images/svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/c-lang.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/cpp-lang.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/c-sharp-lang.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/dart.png
│ │ ├── ./TheAlgorithms.github.io/images/svg/gitter-brands.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/golang.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/javascript.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/java.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/python.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/r-lang.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/ruby.svg
│ │ ├── ./TheAlgorithms.github.io/images/svg/rust.svg
│ │ └── ./TheAlgorithms.github.io/images/svg/scala.svg
│ ├── ./TheAlgorithms.github.io/index.html
│ ├── ./TheAlgorithms.github.io/index-old.html
│ ├── ./TheAlgorithms.github.io/README.html
│ ├── ./TheAlgorithms.github.io/README.md
│ └── ./TheAlgorithms.github.io/static
│ ├── ./TheAlgorithms.github.io/static/css
│ │ └── ./TheAlgorithms.github.io/static/css/main.css
│ └── ./TheAlgorithms.github.io/static/img
│ ├── ./TheAlgorithms.github.io/static/img/arrow.png
│ ├── ./TheAlgorithms.github.io/static/img/default_cur.png
│ ├── ./TheAlgorithms.github.io/static/img/logo.png
│ └── ./TheAlgorithms.github.io/static/img/rsz_default_cur.png
├── ./TREE.md
├── ./website
└── ./website-old
├── ./website-old/css
│ └── ./website-old/css/style.css
├── ./website-old/images
│ ├── ./website-old/images/favicon.png
│ └── ./website-old/images/svg
│ ├── ./website-old/images/svg/c-lang.svg
│ ├── ./website-old/images/svg/cpp-lang.svg
│ ├── ./website-old/images/svg/c-sharp-lang.svg
│ ├── ./website-old/images/svg/dart.png
│ ├── ./website-old/images/svg/golang.svg
│ ├── ./website-old/images/svg/javascript.svg
│ ├── ./website-old/images/svg/java.svg
│ ├── ./website-old/images/svg/python.svg
│ ├── ./website-old/images/svg/r-lang.svg
│ ├── ./website-old/images/svg/ruby.svg
│ ├── ./website-old/images/svg/rust.svg
│ └── ./website-old/images/svg/scala.svg
├── ./website-old/index.html
├── ./website-old/README.html
└── ./website-old/README.md
768 directories, 3490 files