Coursera's Algorithms Part I by Princeton University

Week 3 programming assignment: a program to recognize line patterns in a given set of point. FastCollinearPoints achieves n^2logn running time vs n^4 brute-force approach thanks to the use of mergesort, an optimal with respect to the number of compares sorting algorithm. Implementations of Java's Comparable and Comparator interfaces.