Java 2012 02 29 — различия между версиями
Antonk (обсуждение | вклад) (Новая страница: «Задание №4 (Вариант-1) Создайте собственные параметризованные интерфейсы Comparable<T> и Comparator<T…») |
Antonk (обсуждение | вклад) м (переименовал «Java 2012 02 19» в «Java 2012 02 29») |
(нет различий)
|
Текущая версия на 13:12, 3 марта 2012
Задание №4 (Вариант-1)
Создайте собственные параметризованные интерфейсы Comparable<T> и Comparator<T> (использовать имеющиеся нельзя). Comparable имеет метод int compareTo(T x), а Comparator метод int compare(T x, T y)
Создайте наследников Comparable: СomparableInteger implements Comparable<СomparableInteger> и СomparableString implements Comparable<СomparableString>
Создайте следующие компараторы:
- IntegerModComparator, позволяющий сравнивать ComparableInteger друг с другом по остатку от деления на n (задается при конструировании),
- StringLengthComparator, позволяющий сравнивать ComparableString друг с другом по количеству букв,
Создайте интерфейс Sorter с методами sort(List<T> list) и sort(List<T> list, Comparator<T> c)
Создайте его наследников, реализующих сортировки ShakerSort, HeapSort
Создайте класс, позволяющий находить время работы сортировки. Метод getTime должен получать в качестве параметров List для сортировки и Sorter, либо List для сортировки, Sorter и Comparator
(Необязательно: Попробуйте сделать так, чтобы getTime получал не List, а число n - сколько необходимо сортировать элементов, после чего сам бы создавал List необходимого размера и заполнял его случайными элементами)
Ваша программа должна
- сравнивать между собой время работы ShakerSort, HeapSort при сортировке 10, 100, 1000, 10000 элементов (без компараторов).
- демонстрировать результаты работы сортировок с использованием различных компараторов.