docs: add task specifications for project components

This commit is contained in:
2026-08-21 19:02:34 +04:00
parent c7654403a4
commit f07d181cf7
4 changed files with 184 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
# Техническое задание: сортировка
## Задача
Реализовать паттерн Strategy и собственный алгоритм сортировки объектов `Student`.
## Требования
1. Создать интерфейс `SortStrategy<T>` с методом:
```text
sort(MyList<T> list, Comparator<T> comparator)
```
1. Создать класс `BubbleSortStrategy<T>`, реализующий `SortStrategy<T>`.
2. Алгоритм сортировки реализовать самостоятельно. Готовые методы сортировки Java не использовать.
3. Сортировка должна работать с `MyList<T>`, а не со стандартными коллекциями Java.
4. Сортировка должна использовать переданный `Comparator<T>`.
5. Реализовать возможность сортировки `Student` по каждому из трёх полей:
- `groupNumber`;
- `averageGrade`;
- `recordBookNumber`.
6. Для каждого поля создать отдельный компаратор:
- `StudentGroupComparator`;
- `StudentAverageGradeComparator`;
- `StudentRecordBookComparator`.
7. Алгоритм сортировки не должен зависеть от класса `Student`.
## Результат
Должны быть реализованы:
```text
SortStrategy.java
BubbleSortStrategy.java
StudentGroupComparator.java
StudentAverageGradeComparator.java
StudentRecordBookComparator.java
```
Классы должны работать с `MyList` и не использовать готовые реализации сортировки.