Sorting

Sorting is probably the most fundamental algorithm in Computer Science. A sorting algorithm takes a list as the input, and returns a list in an order. It is often the first step in many algorithms, and thus setting the lower bound for complexity.

Definition
Given a list S with N elements, $$S' = Sort( S )$$ is defined as follows:
 * for $$0 < i \leq N$$, $$S_i \leq S_{i+1}$$.
 * S' is a permutation of S.

Sorting Algorithms and Complexities

 * n is the number of elements
 * k is the number of distinct objects