Jednoduché řadicí algoritmy (řazení primitivních datových typů, problematika řazení objektů)
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
Řazení primitivních datových typů
V programovacím jazyce je obvykle již implementováno, jak posuzovat hodnoty primitivních
datových typů. Jazyk tak při řazení ví, že 5 je menší než 14, 0 větší než -22 či že false (0) má nižší
hodnotu než true (1). Pro řazení pole s primitiv. datovými typy slouží metoda Arrays.sort(pole).
Problematika řazení objektů
Hlavním problémem u řazení objektů je ten, že program sám o sobě neví, podle jaké vlastnosti
takového objektu by měl kolekci objektů seřadit. Existují pak dvě možnosti, jak objekty řadit.
1. přirozené řazení – je řazeno pomocí stejných metod jako neprimitivní datové typy, tedy
sort() a binarySearch(); porovnání objektů musí být definováno ve třídě těchto objektů
2. absolutní řazení – je tu možnost si zvolit, podle čeho se má kolekce objektů řadit, metodě
sort() předáme druhý parametr, který vlastnost, podle které řadit, určuje
Přirozené řazení
Třída implementuje rozhraní java.lang.Comparable s metodou compareTo(Trida t). Tato metoda
je pak vnitřně při snaze řadit objekty volána a každé dva objekty jsou postupně porovnávány, až
jsou seřazeny. Funkce vrací vždy -1, 0 nebo 1 podle toho, zda má být porovnávaný objekt chápán
jako nižší, rovný nebo vyšší.
Absolutní řazení
Třída implementuje rozhraní java.lang.Comparator, které má dvě metody. První z nich je metoda
equals(Object o)
– dědí ji automaticky každá třída ze třídy Object, není tedy nutno ji definovat,
druhou metodou je pak int compare(Trida t1, Trida t2).