Архітектура проекту - ESEI-ZNU/SortingAlgorithms GitHub Wiki
Призначення:
Клас MyArray призначений для зберігання масиву цілих чисел та надає методи для заповнення масиву випадковими або вручну введеними даними. Це основний клас для роботи з масивами в програмі.
Модифікатор доступу: public
Призначення: Представляє масив цілих чисел з методами для доступу, зміни, копіювання, заповнення і підтримкою ітерації. Реалізує інтерфейс Iterable, що дозволяє використовувати цикл for-each.
Члени класу:
Поля:
arr — тип int[], модифікатор private final. Є основним полем класу, яке зберігає масив цілих чисел.
Конструктори:
MyArray(int size) — модифікатор public. Створює об'єкт класу з масивом заданого розміру.
Методи:
getArr() — повертає посилання на внутрішній масив. Тип результату: int[]. Модифікатор: public.
get(int index) — повертає значення елемента за індексом. Тип результату: int. Модифікатор: public.
set(int index, int value) — встановлює значення елемента за індексом. Тип результату: void. Модифікатор: public.
size() — повертає кількість елементів у масиві. Тип результату: int. Модифікатор: public.
copy() — створює копію внутрішнього масиву. Тип результату: int[]. Модифікатор: public.
fillRandom(int bound) — заповнює масив випадковими значеннями у межах [0, bound). Тип результату: void. Модифікатор: public.
fillManual(Scanner scanner) — дозволяє вручну ввести значення елементів за допомогою користувача. Тип результату: void. Модифікатор: public.
iterator() — повертає об'єкт ітератора для проходу по масиву. Тип результату: Iterator. Модифікатор: public.
2 Внутрішній клас MyArrayIterator
Модифікатор доступу: private
Призначення: Реалізує ітерацію по масиву MyArray, необхідну для роботи з for-each.
Члени класу:
Поля:
currentIndex — тип int, модифікатор private. Відповідає за поточну позицію під час ітерації.
Методи:
hasNext() — перевіряє наявність наступного елемента. Тип результату: boolean. Модифікатор: public.
next() — повертає наступний елемент масиву. Тип результату: Integer. Модифікатор: public.
3. Взаємодія класів
Клас MyArray створює екземпляр внутрішнього класу MyArrayIterator для забезпечення ітерації. Внутрішній клас має доступ до поля arr, оскільки є вкладеним. Таким чином, при використанні циклу for-each об’єкт класу MyArray надає елементи масиву в зручному форматі.
Метод fillManual працює у взаємодії з класом Scanner, отримуючи введення користувача з клавіатури.
Призначення:
Клас Main є головним класом програми, який взаємодіє з користувачем, дозволяючи вибрати розмір масиву і метод його заповнення (випадковим чином або вручну). Також у цьому класі користувач може ініціювати порівняння алгоритмів сортування.
Члени класу:
• Константи:
У класі немає констант.
• Конструктори:
У класі немає конструкторів.
• Методи:
• public static void main(String[] args)
Опис: Головний метод програми. Запитує користувача про розмір масиву і вибір методу заповнення, створює об’єкт масиву і передає його для подальшої обробки.
Параметри:
• args (String[]): масив аргументів командного рядка.
Повертає: нічого (void).
4. Взаємодія класів
• Main:
• Взаємодіє з користувачем для отримання введених значень.
• Створює об’єкт класу MyArray та ініціалізує його розмір.
• Запускає методи для заповнення масиву та ініціалізує ітератор ArrayIterator.
• MyArray:
• Має масив цілих чисел і методи для його заповнення випадковими або вручну введеними значеннями.
• Використовується у класі Main для зберігання даних та в класі ArrayIterator для ітерації через елементи.
• ArrayIterator:
• Ітератор для масиву класу MyArray.
• Дозволяє проходити через елементи масиву один за одним за допомогою методів hasNext() та next().
призначений для запуску алгоритмів сортування та вимірювання їх ефективності. Він надає методи для вимірювання часу виконання, кількості порівнянь та кількості перестановок. Клас Main взаємодіє з користувачем для отримання необхідних даних та запуску алгоритмів сортування.
Члени класу:
Клас SortTester
Константи: У класі немає констант.
Конструктори: public SortTester(int[] array)
Опис: Конструктор ініціалізує об'єкт для тестування алгоритмів сортування з заданим масивом.
Параметри: array (int[]): Масив цілих чисел для сортування.
6.Методи:
public void runBubbleSort()
Опис: Запускає алгоритм бульбашкового сортування та вимірює його ефективність.
Параметри: немає.
Повертає: нічого (void).
public void runInsertionSort()
Опис: Запускає алгоритм сортування вставками та вимірює його ефективність.
Параметри: немає.
Повертає: нічого (void).