docs: update sorting task to merge sort

This commit is contained in:
2026-08-21 20:09:43 +04:00
parent 1d3adceed0
commit c8d2683c5d
+12 -14
View File
@@ -1,8 +1,8 @@
# Техническое задание: сортировка # Техническое задание: сортировка слиянием
## Задача ## Задача
Реализовать паттерн Strategy и собственный алгоритм сортировки объектов `Student`. Реализовать паттерн Strategy и собственный алгоритм сортировки слиянием объектов `Student`.
## Требования ## Требования
@@ -12,39 +12,37 @@
sort(MyList<T> list, Comparator<T> comparator) sort(MyList<T> list, Comparator<T> comparator)
``` ```
1. Создать класс `BubbleSortStrategy<T>`, реализующий `SortStrategy<T>`. 1. Создать класс `MergeSortStrategy<T>`, реализующий `SortStrategy<T>`.
2. Алгоритм сортировки реализовать самостоятельно. Готовые методы сортировки Java не использовать. 2. Реализовать алгоритм сортировки слиянием самостоятельно.
3. Сортировка должна работать с `MyList<T>`, а не со стандартными коллекциями Java. 3. Готовые методы сортировки Java не использовать.
4. Сортировка должна использовать переданный `Comparator<T>`. 4. Сортировка должна работать с `MyList<T>`.
5. Реализовать возможность сортировки `Student` по каждому из трёх полей: 5. Сортировка должна использовать переданный `Comparator<T>`.
6. Реализовать сортировку `Student` по каждому из трёх полей:
- `groupNumber`; - `groupNumber`;
- `averageGrade`; - `averageGrade`;
- `recordBookNumber`. - `recordBookNumber`.
6. Для каждого поля создать отдельный компаратор: 7. Создать отдельные компараторы:
- `StudentGroupComparator`; - `StudentGroupComparator`;
- `StudentAverageGradeComparator`; - `StudentAverageGradeComparator`;
- `StudentRecordBookComparator`. - `StudentRecordBookComparator`.
7. Алгоритм сортировки не должен зависеть от класса `Student`. 8. `MergeSortStrategy` не должен зависеть от класса `Student`.
## Результат ## Результат
Должны быть реализованы:
```text ```text
SortStrategy.java SortStrategy.java
BubbleSortStrategy.java MergeSortStrategy.java
StudentGroupComparator.java StudentGroupComparator.java
StudentAverageGradeComparator.java StudentAverageGradeComparator.java
StudentRecordBookComparator.java StudentRecordBookComparator.java
``` ```
Классы должны работать с `MyList` и не использовать готовые реализации сортировки.