Algorithms, Part 1 Course from Princeton —Sorting and Week 3 assignment Collinear Points

Introduction
Algorithms, Part 1 is a solid course for IT or software engineers to learn algorithms which are provided by Princeton. Of course, we still have to take time to clarify the concepts after completing the class.
Sorting is fundamental algorithm for software engineering and it’s essential for the technical interviews. In this article, we will focus different sorting algorithms and implementations.
About this Series
This series aims to wrap up contents of Algorithms, Part 1.
- week 1: Union-find and Week 1 assignment Percolation
- week 2: Stack, Queue, and Week 2 Assignment Deques and Randomized Queues
- week 3: this article
- week 4: Binary Tree, Binary Heaps, and Week 4 Assignment 8 puzzle
- week 5: Hash table and Week 5 Assignment KD-Tree
Agenda
It includes the following topics in this article.
- Comparable and Comparator
- Selection sort
- Insertion sort
- Shell sort
- Merge sort
- Merge sort practical improvements
- Quick sort
- Quick sort practical improvements
- Dijkstra 3-way partitioning/3-way quick sort
- Week 3 Programming Assignment: Collinear points










