Data source: http://rosettacode.org/wiki/Sort_an_array_of_composite_structures