Seminář 3 (Úkoly)
Úkol č.1
Implementujte statickou metodu int[] odd(int[] foo)
vracející pole čísel, kde budou pouze lichá čísla z argumentu foo
.
Úkol č.2
Implementujte statickou metodu List<Object> odd(List<Object> foo)
vracející seznam čísel, kde budou pouze lichá čísla foo
. Pokud argument foo
obsahuje objekt, který není celé číslo, je tento objekt ignorován. Tuto funkcionalitu ověřte.
Úkol č.3
Implementujte statickou metodu List<Integer> oddNumbers(List<Integer> foo)
vracející seznam čísel, kde budou pouze lichá čísla z foo
.
Úkol č.4
S využítím třídy Point
z minulého cvičení implementujte statickou metodu Point nearest(Point p, List<Point> points)
, která vrací ze seznamu points
bod, který je nejblíže bodu p
.
Úkol č.5
Implementujte funkce int[] merge(int[], int[])
a List<Integer> merge(List<Integer>, List<Integer>)
, které mají na vstupu setříděné posloupnosti celých čísel a provedou jejich ,,slití'', které vrátí na výstup jako nové setříděné pole/seznam.
Úkol č.6
S využitím metody List<Integer> merge(List<Integer>, List<Integer>)
implementuje metodu List<Integer> mergeSort(List<Integer>)
, implementující algoritmus MergeSort.
Doplňkový úkol
Ověřte si rychlost metody mergeSort
, když budete v metodě merge
vytvářet seznam jako ArrayList
a když budete používat LinkedList
. Využijte metody System.currentTimeMillis()
.
Vyřešené úkoly zašlete do 15.10.2014 17:00 CET na email petr.krajca (zavináč) upol.cz s předmětem ZP3JV. Zasílejte pouze zdrojové kódy. Pokud chcete zdrojové kódy poslat zkomprimované, použijte buď formát zip nebo kombinaci tar+gz.