Algorithms
This project contains lots of Groovy implementations of various problems and algorithms from Introduction to Algorithms by Cormen, Leiserson, Rivest, Stein (CLRS).
The goal is to create clean, readable, and runnable versions of the algorithms presented. It's easier to learn an algorithm when you can step through it line by line with a debugger!
Scared by Groovy? Don't be, it's just an extension of Java that lets us remove lots of the clutter and boilerplate code that would weigh down the presentation of the algorithms. If you can write Java code, you can write Groovy code.
Enjoy!
- Chapter 2: Getting Started See InsertionSort, SelectionSort, MergeSort
- Chapter 4: Divide and Conquer See Max Subarray
- Chapter 6: Heapsort See Heap and Heap Sort
- Chapter 7: QuickSort See QuickSort and RandomizedQuickSort.
- Chapter 8: Sorting in Linear Time See Counting Sort and Radix Sort
- Chapter 15: Dynamic Programming See Rod Cutting, Matrix Chaining, Edit Distance, and DNA Alignment.