Skip to content

saurabh2590/computer-science

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer Science - Practice and Exploration

This repository will be a place to practice computer science and crytpography principles in Golang. The following items are going to be examined:

Data Structures

Abstract Data Types

Graph algorithms

Shortest path:

  • Dijkstra
  • Floyd–Warshall

Sorting:

  • Topological Sort

Searcing:

Math algorithms

  • 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

Sorting algorithms

Bad:

Basic:

Fast:

Other

  • Bucket Sort
  • Radix Sort

Searching algorithms

String Matching

  • Knuth-Morris-Pratt (KMP)
  • Rabin-Karp

Misc

Design Patterns

  • Factory
  • Singleton
  • Adapter
  • Decorator
  • Observer
  • Iterator
  • MVC

Cryptography

Symmetric-Key

  • Stream Ciphers (RC4, Salsa20, SOSEMANUK, FISH)
  • Block Ciphers (AES, DES, Triple DES, Blowfish)
  • Hash Functions (MD5, SHA1, SHA2, HMAC, )

Public Key Cryptography

  • RSA Algorithm
  • DSA Algorithm

About

A collection of data-structures and algorithms in Golang

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%