bdsaglam / Swift6006

Algorithms covered in MIT 6006 (2011) in Swift

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Swift6006

This repository contains Swift implementations of algorithms and data structures covered in MIT's Introduction to Algorithms course.

Please, open issue for bugs, missing parts and requests.

Syllabus

Unit 1: Algorithmic thinking

  • Binary search
  • Peak finding, Array2D
  • Document distance

Unit 2: Sorting and Trees

  • Heap
  • Sort algorithms: insertion, merge, quick, heap
  • Binary Search Tree
  • AVL Tree
  • Linear sorting algorithms: counting, radix, bucket

Unit 3: Hashing

  • Hashing with chaining
  • Table doubling
  • Rolling hash, Karp-Robin
  • Open adressing

Unit 4: Numerics

  • Karatsuba multiplication
  • Newton's method

Unit 5: Graphs

  • Breadth-first search (BFS)
  • Depth-first search (DFS), topological sorting

Unit 6: Shortest Paths

  • Single source shortest paths problems
  • Dijkstra
  • Bellman-Ford

Unit 7: Dynamic Programming

  • Text justification
  • Crazy8
  • Edit distance
  • Knapsack
  • Longest sorted sub-sequence

About

Algorithms covered in MIT 6006 (2011) in Swift

License:MIT License


Languages

Language:Swift 100.0%