Algorithms

Programming labs (C/C++/Java) - my effort 2013 - 2015

Algorithms, Part I (prof. Sedgewick) (Princeton University - Coursera)

fundamental data types, algorithms, and data structures, Java implementations. Union-find algorithms; basic iterable data types (stack, queues, and bags); sorting algorithms (quicksort, mergesort, heapsort) and applications; priority queues; binary search trees; red-black trees; hash tables; and symbol-table applications.

Algorithms, Part II (prof. Sedgewick) (Princeton University - Coursera)

graph-processing algorithms, including minimum spanning tree and shortest paths algorithms, and string processing algorithms, including string sorts, tries, substring search, regular expressions, and data compression

Algorithms: Design and Analysis, Part I (Stanford Online - Coursera)

asymptotic analysis, divide and conquer algorithms, sorting and searching, basic randomized algorithms, graph search, shortest paths, heaps, search trees, and hash tables

Algorithms: Design and Analysis, Part II (Stanford Online - Coursera)

greedy algorithms, including applications to minimum spanning trees and Huffman codes; dynamic programming, including applications to sequence alignment and shortest-path problems; and exact and approximation algorithms for NP-complete problems

(Coursera honor code - you are not allowed to use any of this code for you lab solutions)