Lab 9:

Po pierwsze, proszę się zaznajomić z dokumentacją następujących interfejsów z typami generycznymi:
  - Comparable<T>
  - List<T>        (implementację tego interfejsu ArrayList<T>, znamy i używamy już od dawna)

Proszę zaimplementować prosty interfejs do sortowania list, wraz z kilkoma implementacjami. 
Interfejs powinien być parametryzowany typem T, który rozszerza Comparable<T>; typ ten będzie używany w sortowaniu. 
Obiekt sorter powinien mieć jedną metodę List<T> sort(List<T> a), która dla danej listy zwróci posortowaną kopię tej listy. 
Proszę zaimplementować dwie implementacje tego interfejsu, 
 - jedną z jakimkolwiek kwadratowym algorytmem sortującym (np. insertions sort), oraz
 - jedną z jakimkolwiek liniowo-logarytmicznym (np. quicksort). 
Obie implementacje powinny mieć krótkie funkcje main ze sprawdzeniem na małym przykładzie, czy wszystko działa w porządku.