Directories
¶
| Path | Synopsis |
|---|---|
|
Package checksum describes algorithms for finding various checksums
|
Package checksum describes algorithms for finding various checksums |
|
Package cipher is a package containing different implementations of certain ciphers
|
Package cipher is a package containing different implementations of certain ciphers |
|
caesar
Package caesar is the shift cipher description: Caesar cipher details : Caesar cipher is a type of substitution cipher in which each letter in the plaintext is shifted a certain number of places down the alphabet.
|
Package caesar is the shift cipher description: Caesar cipher details : Caesar cipher is a type of substitution cipher in which each letter in the plaintext is shifted a certain number of places down the alphabet. |
|
diffiehellman
Package diffiehellman implements Diffie-Hellman Key Exchange Algorithm description: Diffie-Hellman key exchange details : Diffie-Hellman key exchange is a method of securely exchanging cryptographic keys over a public channel by combining private keys of two parties to generate a shared secret key.
|
Package diffiehellman implements Diffie-Hellman Key Exchange Algorithm description: Diffie-Hellman key exchange details : Diffie-Hellman key exchange is a method of securely exchanging cryptographic keys over a public channel by combining private keys of two parties to generate a shared secret key. |
|
dsa
dsa.go description: DSA encryption and decryption including key generation details: [DSA wiki](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm) author(s): [ddaniel27](https://github.com/ddaniel27)
|
dsa.go description: DSA encryption and decryption including key generation details: [DSA wiki](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm) author(s): [ddaniel27](https://github.com/ddaniel27) |
|
polybius
Package polybius is encrypting method with polybius square description: Polybius square details : The Polybius algorithm is a simple algorithm that is used to encode a message by converting each letter to a pair of numbers.
|
Package polybius is encrypting method with polybius square description: Polybius square details : The Polybius algorithm is a simple algorithm that is used to encode a message by converting each letter to a pair of numbers. |
|
railfence
railfence.go description: Rail Fence Cipher details: The rail fence cipher is a an encryption algorithm that uses a rail fence pattern to encode a message.
|
railfence.go description: Rail Fence Cipher details: The rail fence cipher is a an encryption algorithm that uses a rail fence pattern to encode a message. |
|
rot13
Package rot13 is a simple letter substitution cipher that replaces a letter with the 13th letter after it in the alphabet.
|
Package rot13 is a simple letter substitution cipher that replaces a letter with the 13th letter after it in the alphabet. |
|
rsa
Package rsa shows a simple implementation of RSA algorithm
|
Package rsa shows a simple implementation of RSA algorithm |
|
xor
Package xor is an encryption algorithm that operates the exclusive disjunction(XOR) description: XOR encryption details: The XOR encryption is an algorithm that operates the exclusive disjunction(XOR) on each character of the plaintext with a given key time complexity: O(n) space complexity: O(n) ref: https://en.wikipedia.org/wiki/XOR_cipher
|
Package xor is an encryption algorithm that operates the exclusive disjunction(XOR) description: XOR encryption details: The XOR encryption is an algorithm that operates the exclusive disjunction(XOR) on each character of the plaintext with a given key time complexity: O(n) space complexity: O(n) ref: https://en.wikipedia.org/wiki/XOR_cipher |
|
rlecoding.go description: run length encoding and decoding details: Run-length encoding (RLE) is a simple form of data compression in which runs of data are stored as a single data value and count, rather than as the original run.
|
rlecoding.go description: run length encoding and decoding details: Run-length encoding (RLE) is a simple form of data compression in which runs of data are stored as a single data value and count, rather than as the original run. |
|
Package constraints has some useful generic type constraints defined which is very similar to golang.org/x/exp/constraints(https://pkg.go.dev/golang.org/x/exp/constraints) package.
|
Package constraints has some useful generic type constraints defined which is very similar to golang.org/x/exp/constraints(https://pkg.go.dev/golang.org/x/exp/constraints) package. |
|
Package conversion is a package of implementations which converts one data structure to another.
|
Package conversion is a package of implementations which converts one data structure to another. |
|
binomialcoefficient.go description: Implementation of the binomial coefficient using dynamic programming details: The binomial coefficient C(n, k) is the number of ways to choose a subset of k elements from a set of n elements.
|
binomialcoefficient.go description: Implementation of the binomial coefficient using dynamic programming details: The binomial coefficient C(n, k) is the number of ways to choose a subset of k elements from a set of n elements. |
|
Package graph provides algorithms to analyze graph structures.
|
Package graph provides algorithms to analyze graph structures. |
|
coloring
Package coloring provides implementation of different graph coloring algorithms, e.g.
|
Package coloring provides implementation of different graph coloring algorithms, e.g. |
|
Package hashing containing different implementation of certain hashing
|
Package hashing containing different implementation of certain hashing |
|
Package math is a package that contains mathematical algorithms and its different implementations.
|
Package math is a package that contains mathematical algorithms and its different implementations. |
|
binary
Package binary describes algorithms that use binary operations for different calculations.
|
Package binary describes algorithms that use binary operations for different calculations. |
|
factorial
Package factorial describes algorithms Factorials calculations.
|
Package factorial describes algorithms Factorials calculations. |
|
geometry
Package geometry contains geometric algorithms
|
Package geometry contains geometric algorithms |
|
matrix
filename: strassenmatrixmultiply.go description: Implements matrix multiplication using the Strassen algorithm.
|
filename: strassenmatrixmultiply.go description: Implements matrix multiplication using the Strassen algorithm. |
|
prime
sieve2.go - Sieve of Eratosthenes * Algorithm to generate prime numbers up to a limit * time complexity: O(n log log n) * space complexity: O(n) * Author: ddaniel27
|
sieve2.go - Sieve of Eratosthenes * Algorithm to generate prime numbers up to a limit * time complexity: O(n log log n) * space complexity: O(n) * Author: ddaniel27 |
|
Package other is dedicated to algorithms that do not quite fit into any of the other subpackages in this repository.
|
Package other is dedicated to algorithms that do not quite fit into any of the other subpackages in this repository. |
|
maxsubarraysum
Package maxsubarraysum is a package containing a solution to a common problem of finding max contiguous sum within a array of ints.
|
Package maxsubarraysum is a package containing a solution to a common problem of finding max contiguous sum within a array of ints. |
|
nested
Package nested provides functions for testing strings proper brackets nesting.
|
Package nested provides functions for testing strings proper brackets nesting. |
|
project_euler
|
|
| * | |
|
problem_10
* * Problem 10 - Summation of primes * @see {@link https://projecteuler.net/problem=10} * * The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
|
* * Problem 10 - Summation of primes * @see {@link https://projecteuler.net/problem=10} * * The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. |
|
problem_11
* * Problem 11 - Largest product in a grid * @see {@link https://projecteuler.net/problem=11} * * In the 20×20 grid below, four numbers along a diagonal line have been marked in red.
|
* * Problem 11 - Largest product in a grid * @see {@link https://projecteuler.net/problem=11} * * In the 20×20 grid below, four numbers along a diagonal line have been marked in red. |
|
problem_12
* * Problem 12 - Highly divisible triangular number * @see {@link https://projecteuler.net/problem=12} * * The sequence of triangle numbers is generated by adding the natural numbers.
|
* * Problem 12 - Highly divisible triangular number * @see {@link https://projecteuler.net/problem=12} * * The sequence of triangle numbers is generated by adding the natural numbers. |
|
problem_13
* * Problem 13 - Large sum * @see {@link https://projecteuler.net/problem=13} * * Work out the first ten digits of the sum of the following one-hundred 50-digit numbers.
|
* * Problem 13 - Large sum * @see {@link https://projecteuler.net/problem=13} * * Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. |
|
problem_14
* * Problem 14 - Longest Collatz sequence * @see {@link https://projecteuler.net/problem=14} * * The following iterative sequence is defined for the set of positive integers: * n → n/2 (n is even) * n → 3n + 1 (n is odd) * * Using the rule above and starting with 13, we generate the following sequence: * 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 * * Which starting number, under one million, produces the longest chain? * * NOTE: Once the chain starts the terms are allowed to go above one million.
|
* * Problem 14 - Longest Collatz sequence * @see {@link https://projecteuler.net/problem=14} * * The following iterative sequence is defined for the set of positive integers: * n → n/2 (n is even) * n → 3n + 1 (n is odd) * * Using the rule above and starting with 13, we generate the following sequence: * 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 * * Which starting number, under one million, produces the longest chain? * * NOTE: Once the chain starts the terms are allowed to go above one million. |
|
problem_15
* * Problem 15 - Lattice paths * @see {@link https://projecteuler.net/problem=15} * * Starting in the top left corner of a 2×2 grid, * and only being able to move to the right and down, * there are exactly 6 routes to the bottom right corner.
|
* * Problem 15 - Lattice paths * @see {@link https://projecteuler.net/problem=15} * * Starting in the top left corner of a 2×2 grid, * and only being able to move to the right and down, * there are exactly 6 routes to the bottom right corner. |
|
problem_16
* * Problem 16 - Power digit sum * @see {@link https://projecteuler.net/problem=16} * * 2^15 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.
|
* * Problem 16 - Power digit sum * @see {@link https://projecteuler.net/problem=16} * * 2^15 = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26. |
|
problem_17
* * I put this code in a separate file because it is too long.
|
* * I put this code in a separate file because it is too long. |
|
problem_18
* * Problem 18 - Maximum path sum I * @see {@link https://projecteuler.net/problem=18} * * By starting at the top of the triangle below and * moving to adjacent numbers on the row below, * the maximum total from top to bottom is 23.
|
* * Problem 18 - Maximum path sum I * @see {@link https://projecteuler.net/problem=18} * * By starting at the top of the triangle below and * moving to adjacent numbers on the row below, * the maximum total from top to bottom is 23. |
|
problem_2
* * Problem 2 - Even Fibonacci numbers * @see {@link https://projecteuler.net/problem=2} * * Each new term in the Fibonacci sequence is generated by adding the previous two terms.
|
* * Problem 2 - Even Fibonacci numbers * @see {@link https://projecteuler.net/problem=2} * * Each new term in the Fibonacci sequence is generated by adding the previous two terms. |
|
problem_20
* * Problem 20 - Factorial digit sum * @see {@link https://projecteuler.net/problem=20} * * n! means n × (n − 1) × ...
|
* * Problem 20 - Factorial digit sum * @see {@link https://projecteuler.net/problem=20} * * n! means n × (n − 1) × ... |
|
problem_3
* * Problem 3 - Largest prime factor * @see {@link https://projecteuler.net/problem=3} * * The prime factors of 13195 are 5, 7, 13 and 29.
|
* * Problem 3 - Largest prime factor * @see {@link https://projecteuler.net/problem=3} * * The prime factors of 13195 are 5, 7, 13 and 29. |
|
problem_4
* * Problem 4 - Largest palindrome product * @see {@link https://projecteuler.net/problem=4} * * A palindromic number reads the same both ways.
|
* * Problem 4 - Largest palindrome product * @see {@link https://projecteuler.net/problem=4} * * A palindromic number reads the same both ways. |
|
problem_5
* * Problem 5 - Smallest multiple * @see {@link https://projecteuler.net/problem=5} * * 2520 is the smallest number that can be divided by * each of the numbers from 1 to 10 without any remainder.
|
* * Problem 5 - Smallest multiple * @see {@link https://projecteuler.net/problem=5} * * 2520 is the smallest number that can be divided by * each of the numbers from 1 to 10 without any remainder. |
|
problem_6
* * Problem 6 - Sum square difference * @see {@link https://projecteuler.net/problem=6} * * The sum of the squares of the first ten natural numbers is, * 1^2 + 2^2 + ...
|
* * Problem 6 - Sum square difference * @see {@link https://projecteuler.net/problem=6} * * The sum of the squares of the first ten natural numbers is, * 1^2 + 2^2 + ... |
|
problem_7
* * Problem 7 - 10001st prime * @see {@link https://projecteuler.net/problem=7} * * By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, * we can see that the 6th prime is 13.
|
* * Problem 7 - 10001st prime * @see {@link https://projecteuler.net/problem=7} * * By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, * we can see that the 6th prime is 13. |
|
problem_8
* * Problem 8 - Largest product in a series * @see {@link https://projecteuler.net/problem=8} * * The four adjacent digits in the 1000-digit number that * have the greatest product are 9 × 9 × 8 × 9 = 5832.
|
* * Problem 8 - Largest product in a series * @see {@link https://projecteuler.net/problem=8} * * The four adjacent digits in the 1000-digit number that * have the greatest product are 9 × 9 × 8 × 9 = 5832. |
|
problem_9
* * Problem 9 - Special Pythagorean triplet * @see {@link https://projecteuler.net/problem=9} * * A Pythagorean triplet is a set of three natural numbers, a < b < c, for which, * a^2 + b^2 = c^2 * * For example, 3^2 + 4^2 = 9 + 16 = 25 = 5^2.
|
* * Problem 9 - Special Pythagorean triplet * @see {@link https://projecteuler.net/problem=9} * * A Pythagorean triplet is a set of three natural numbers, a < b < c, for which, * a^2 + b^2 = c^2 * * For example, 3^2 + 4^2 = 9 + 16 = 25 = 5^2. |
|
Package search is a subpackage dedicated to all searching algorithms related to slices/arrays.
|
Package search is a subpackage dedicated to all searching algorithms related to slices/arrays. |
|
Package sort implements various sorting algorithms.
|
Package sort implements various sorting algorithms. |
|
Package sqrt contains algorithms and data structures that contains a √n in their complexity
|
Package sqrt contains algorithms and data structures that contains a √n in their complexity |
|
Package strings is a package that contains all algorithms that are used to analyse and manipulate strings.
|
Package strings is a package that contains all algorithms that are used to analyse and manipulate strings. |
|
combination
Package combination ...
|
Package combination ... |
|
genetic
Package genetic provides functions to work with strings using genetic algorithm.
|
Package genetic provides functions to work with strings using genetic algorithm. |
|
guid
Package guid provides facilities for generating random globally unique identifiers.
|
Package guid provides facilities for generating random globally unique identifiers. |
|
Package structure is a subpackage that is dedicated to different implementations of data structures in the domain of computer science.
|
Package structure is a subpackage that is dedicated to different implementations of data structures in the domain of computer science. |
|
circularqueue
Package queue provides an implementation of a circular queue data structure.
|
Package queue provides an implementation of a circular queue data structure. |
|
deque
Package deque implements a Double Ended Queue data structure.
|
Package deque implements a Double Ended Queue data structure. |
|
dynamicarray
Package dynamicarray A dynamic array is quite similar to a regular array, but its Size is modifiable during program runtime, very similar to how a slice in Go works.
|
Package dynamicarray A dynamic array is quite similar to a regular array, but its Size is modifiable during program runtime, very similar to how a slice in Go works. |
|
fenwicktree
Fenwick Tree Data Structure for efficient range queries on an array of integers.
|
Fenwick Tree Data Structure for efficient range queries on an array of integers. |
|
linkedlist
Package linkedlist demonstrates different implementations on linkedlists.
|
Package linkedlist demonstrates different implementations on linkedlists. |
|
segmenttree
Segment Tree Data Structure for efficient range queries on an array of integers.
|
Segment Tree Data Structure for efficient range queries on an array of integers. |
|
set
package set implements a Set using a golang map.
|
package set implements a Set using a golang map. |
|
tree
For more details check out those links below here: Wikipedia article: https://en.wikipedia.org/wiki/Binary_search_tree authors [guuzaa](https://github.com/guuzaa)
|
For more details check out those links below here: Wikipedia article: https://en.wikipedia.org/wiki/Binary_search_tree authors [guuzaa](https://github.com/guuzaa) |
|
trie
Package trie provides Trie data structures in golang.
|
Package trie provides Trie data structures in golang. |
Click to show internal directories.
Click to hide internal directories.