Google Go Programming Language Algorithms

alt text

Here is a collection of various Computer Science related algorithms for the Go programming language a.k.a. golang.

Much of the code is from RosettaCode and standard lib, and is referenced within the file as required.

Examples are available inside the examples folder

Table of Contents

Sorting
Compression
Trees
Artificial Intelligence
Search
Concurrency

Sorting

  1. BubbleSort
  2. QuickSort
  3. InsertionSort
  4. MergeSort
  5. CountSort
  6. SelectionSort
  7. ShellSort
  8. HeapSort

Compression

  1. Lempel–Ziv–Welch (LZW)
  2. Burrows–Wheeler Transform (BWT)
  3. Huffman Encodings

Trees

  1. B+ Tree
  2. AVL-Tree
  3. KD-Tree

Artificial Intelligence

  1. A* Search
  2. Bayesian Networks
  3. Neural Networks
  4. Decision Tree

Search

  1. Page-Rank
  2. Depth-First Search
  3. Breadth-First Search
  4. Binary Search

Concurrency Locks

  1. WaitGroup (Barrier)
  2. Mutex Lock
  3. Semaphore
  4. Condition Variable
  5. Spin Lock