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. Zadanie dla ambitnych: zmieniÄ implementacjÄ tak by dziaĹaĹo to dla T[] zamiast List<T>, oraz rozwiÄ zaÄ wszystkie Javowe bĹÄdy kompilacyjne zwiÄ zane z tablicami genericĂłw.