Lab4.1

Run Settings
LanguageC
Language Version
Run Command
/** * @file lab4.1.cpp *@author Ткаченко Є.С., гр. 515і *@date 7 квітня 2023 *@brief Лабораторна робота № 4, варіант 7 * * Завдання 1. Функції. Швидке сортування. Робота з відлагоджувачем. */ #include <stdio.h> #include <stdlib.h> #include <time.h> #include <locale.h> // заповнення масиву випадковими числами void ArrayRandom(int arr[], int size) { srand(time(NULL)); for (int i = 0; i < size; i++) { arr[i] = rand() % 100; } } // заповнення масиву значеннями, введеними користувачем void ArrayUser(int arr[], int size) { for (int i = 0; i < size; i++) { printf("Введiть елемент %d: ", i + 1); scanf("%d", &arr[i]); } } // Вибір способу заповнення void ChoiceArray(int arr[], int size) { int choice; printf("Оберiть 1 якщо випадкове заповнення\n"); printf("Оберiть 2 якщо ввести з клавiатури\n"); scanf("%d", &choice); if (choice == 1) { ArrayRandom(arr, size); } else if (choice == 2) { ArrayUser(arr, size); } else { printf("Помилка!\n"); } } void quickSort(int arr[], int low, int high) { if (low < high) { // знаходження підмасиву з елементами меншими та більшими опорного елемента int x = arr[high]; int i = low - 1; for (int j = low; j < high; j++) { if (arr[j] <= x) { i++; int temp = arr[i]; arr[i] = arr[j]; // обмін елементів arr[j] = temp; } } // переміщення опорного елемента на його правильне місце відносно підмасивів з меншими та більшими елементами int temp = arr[i + 1]; arr[i + 1] = arr[high]; arr[high] = temp; // рекурсивне сортування лівого та правого підмасивів quickSort(arr, low, i); quickSort(arr, i + 2, high); } } // виведення масиву на екран void printArray(int arr[], int size) { for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } printf("\n"); } //Головна функція int main() { setlocale(LC_ALL, "Ukr"); int size; printf("Введiть розмiр масиву: "); scanf("%d", &size); int arr[100]; ChoiceArray(arr, size); printf("Масив до сортування: "); printArray(arr, size); quickSort(arr, 0, size - 1); printf("Масив пiсля сортування: "); printArray(arr, size); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines