Files

49 lines
1.4 KiB
Markdown
Raw Permalink Normal View History

2026-08-21 20:09:43 +04:00
# Техническое задание: сортировка слиянием
## Задача
2026-08-21 20:09:43 +04:00
Реализовать паттерн Strategy и собственный алгоритм сортировки слиянием объектов `Student`.
## Требования
1. Создать интерфейс `SortStrategy<T>` с методом:
```text
sort(MyList<T> list, Comparator<T> comparator)
```
2026-08-21 20:09:43 +04:00
1. Создать класс `MergeSortStrategy<T>`, реализующий `SortStrategy<T>`.
2026-08-21 20:09:43 +04:00
2. Реализовать алгоритм сортировки слиянием самостоятельно.
2026-08-21 20:09:43 +04:00
3. Готовые методы сортировки Java не использовать.
2026-08-21 20:09:43 +04:00
4. Сортировка должна работать с `MyList<T>`.
2026-08-21 20:09:43 +04:00
5. Сортировка должна использовать переданный `Comparator<T>`.
6. Реализовать сортировку `Student` по каждому из трёх полей:
- `groupNumber`;
- `averageGrade`;
- `recordBookNumber`.
2026-08-21 20:09:43 +04:00
7. Создать отдельные компараторы:
- `StudentGroupComparator`;
- `StudentAverageGradeComparator`;
- `StudentRecordBookComparator`.
2026-08-21 20:09:43 +04:00
8. `MergeSortStrategy` не должен зависеть от класса `Student`.
## Результат
```text
SortStrategy.java
2026-08-21 20:09:43 +04:00
MergeSortStrategy.java
StudentGroupComparator.java
StudentAverageGradeComparator.java
StudentRecordBookComparator.java
```