This repository will be a place to practice computer science and crytpography principles in Golang. The following items are going to be examined:
- Linked List
- Binary Search Tree
- Red-Black Tree
- AVL Tree
- Treap
- B-Tree
- Hash Tables
- Matrix
- Heap (Max / Min)
- Trie
- Suffix Array
Shortest path:
- Dijkstra
- Floyd–Warshall
Sorting:
- Topological Sort
Searcing:
- Breadth First Search
- Depth First Search
- Binary GCD algorithm
- Closest pairs
- FastPower
- Fibonacci
- Fisher-Yates Shuffle
- Erastothenes Sieve
- Extented GCD algorithm
- Karatsuba's Multiplication
- Newton's Square Root
- Permutations Count
- Strassen's matrix multiplication
- Randomized Selection
Bad:
Basic:
Fast:
- Quick Sort
- Merge Sort
- Heap Sort
Other
- Bucket Sort
- Radix Sort
- Knuth-Morris-Pratt
- Rabin-Karp
Cryptography (Terms)
- Stream Ciphers (RC4, Salsa20, SOSEMANUK, FISH)
- Block Ciphers (AES, DES, Triple DES, Blowfish)
Public Key Cryptography
- RSA Algorithm
- DSA Algorithm
Misc
- Hash Functions (MD5, SHA1, SHA2, HMAC)
- PGP