Написати функцію з прототипом void SortArr_1(int* arr, int n), яка сортує за зростанням одновимірний масив arr методом простого вибору.
Напишіть програму, яка:
Результати роботи

Код програми з згорнутими функціями
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// Прототипи функцій
void RandArr(int* arr, int n, int a, int b); // Заповнення масиву випадковими числами
void PrintArr(int* arr, int n); // Вивід масиву на екран
void SortArr_1(int* arr, int n); // Сортування масиву методом простого вибору
int main()
{
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b;
cout << "Введіть межі діапазону [a, b]: ";
cin >> a >> b;
int n;
cout << "Введіть розмір масиву: ";
cin >> n;
int mass[n]; // Оголошення масиву
RandArr(mass, n, a, b); // Заповнення масиву
cout << "Початковий масив: ";
PrintArr(mass, n); // Вивід початкового масиву
SortArr_1(mass, n); // Сортування масиву
cout << "Відсортований масив: ";
PrintArr(mass, n); // Вивід відсортованого масиву
return 0;
}
// Функція для заповнення масиву випадковими числами в діапазоні [a, b]
void RandArr(int* arr, int n, int a, int b)
{
for (int i = 0; i < n; i++) {
arr[i] = a + rand() % (b - a + 1); // Генерація випадкового числа
}
}
// Функція для виведення масиву на екран
void PrintArr(int* arr, int n)
{
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
// Функція сортування масиву методом простого вибору (Selection Sort)
void SortArr_1(int* arr, int n)
{
for (int i = 0; i < n - 1; i++) {
int min_index = i; // Індекс мінімального елемента
// Пошук мінімального елемента в невідсортованій частині
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
// Обмін мінімального елемента з першим елементом невідсортованої частини
if (min_index != i) {
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
}
Написати функцію з прототипом void SortArr_1(int* arr, int n, int k, int s), яка сортує за зростанням в одновимірному масиві arr методом простого вибору елементи з k-го по s-й включно.
Напишіть програму, яка:
Результати роботи

Код програми з згорнутими функціями
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// Прототипи функцій
void RandArr(int* arr, int n, int a, int b); // Заповнення масиву випадковими числами
void PrintArr(int* arr, int n); // Вивід масиву на екран
void SortArr_1(int* arr, int n, int k, int s); // Сортування частини масиву методом вибору
int main()
{
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b;
cout << "Введіть межі діапазону [a, b]: ";
cin >> a >> b;
int n;
cout << "Введіть розмір масиву: ";
cin >> n;
int mass[n]; // Оголошення масиву
RandArr(mass, n, a, b); // Заповнення масиву
cout << "Початковий масив: ";
PrintArr(mass, n); // Вивід початкового масиву
int x, y;
cout << "Введіть індекси для сортування (x та y): ";
cin >> x >> y;
SortArr_1(mass, n, x, y); // Сортування частини масиву
cout << "Масив після сортування: ";
PrintArr(mass, n); // Вивід зміненого масиву
return 0;
}
// Функція заповнення масиву випадковими числами
void RandArr(int* arr, int n, int a, int b)
{
for (int i = 0; i < n; i++) {
arr[i] = a + rand() % (b - a + 1);
}
}
// Функція виведення масиву
void PrintArr(int* arr, int n)
{
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
// Функція сортування частини масиву методом вибору
void SortArr_1(int* arr, int n, int k, int s)
{
// Перевірка коректності введених індексів
if (k < 0) k = 0;
if (s >= n) s = n - 1;
if (k > s) return;
// Сортування методом вибору для вказаного діапазону
for (int i = k; i <= s; i++) {
int min_index = i;
for (int j = i + 1; j <= s; j++) {
if (arr[j] < arr[min_index]) {
min_index = j;
}
}
// Обмін елементів
if (min_index != i) {
int temp = arr[i];
arr[i] = arr[min_index];
arr[min_index] = temp;
}
}
}
Написати функцію з прототипом void SortArr_2(int* arr, int n), яка сортує за зростанням одновимірний масив arr методом простого обміну.
Напишіть програму, яка:
Результати роботи

Код програми з згорнутими функціями
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// Прототипи функцій
void RandArr(int* arr, int n, int a, int b); // Заповнення масиву випадковими числами
void PrintArr(int* arr, int n); // Вивід масиву на екран
void SortArr_2(int* arr, int n); // Сортування методом простого обміну (бульбашкою)
void SwapArr(int* arr, int n, int k1, int k2); // Обмін елементів масиву
int main()
{
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b;
cout << "Введіть межі діапазону [a, b]: ";
cin >> a >> b;
int n;
cout << "Введіть розмір масиву: ";
cin >> n;
int mass[n]; // Оголошення масиву
RandArr(mass, n, a, b); // Заповнення масиву
cout << "Початковий масив: ";
PrintArr(mass, n); // Вивід початкового масиву
SortArr_2(mass, n); // Сортування методом простого обміну
cout << "Відсортований масив: ";
PrintArr(mass, n); // Вивід відсортованого масиву
SwapArr(mass, n, 0, n-1); // Перевертання масиву
cout << "Перевернутий масив: ";
PrintArr(mass, n); // Вивід перевернутого масиву
return 0;
}
// Функція заповнення масиву випадковими числами
void RandArr(int* arr, int n, int a, int b)
{
for (int i = 0; i < n; i++) {
arr[i] = a + rand() % (b - a + 1);
}
}
// Функція виведення масиву
void PrintArr(int* arr, int n)
{
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
// Функція сортування методом простого обміну (бульбашкове сортування)
void SortArr_2(int* arr, int n)
{
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
// Обмін елементів
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
// Функція для обміну елементів місцями (використовується для перевертання масиву)
void SwapArr(int* arr, int n, int k1, int k2)
{
while (k1 < k2) {
int temp = arr[k1];
arr[k1] = arr[k2];
arr[k2] = temp;
k1++;
k2--;
}
}
Написати функцію з прототипом void SortArr_2(int* arr, int n, int k, int s), яка сортує за зростанням в одновимірному масиві arr методом простого обміну елементи з k-го по s-й включно.
Напишіть програму, яка:
Результати роботи

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// Прототипи функцій
void RandArr(int* arr, int n, int a, int b); // Заповнення масиву випадковими числами
void PrintArr(int* arr, int n); // Вивід масиву на екран
void SortArr_2(int* arr, int n, int k, int s); // Сортування частини масиву методом простого обміну
int main()
{
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b;
cout << "Введіть межі діапазону [a, b]: ";
cin >> a >> b;
int n;
cout << "Введіть розмір масиву: ";
cin >> n;
int mass[n]; // Оголошення масиву
RandArr(mass, n, a, b); // Заповнення масиву
cout << "Початковий масив: ";
PrintArr(mass, n); // Вивід початкового масиву
int x, y;
cout << "Введіть індекси для сортування (x та y): ";
cin >> x >> y;
SortArr_2(mass, n, x, y); // Сортування частини масиву
cout << "Масив після сортування: ";
PrintArr(mass, n); // Вивід зміненого масиву
return 0;
}
// Функція заповнення масиву випадковими числами
void RandArr(int* arr, int n, int a, int b)
{
for (int i = 0; i < n; i++) {
arr[i] = a + rand() % (b - a + 1);
}
}
// Функція виведення масиву
void PrintArr(int* arr, int n)
{
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
// Функція сортування частини масиву методом простого обміну (бульбашкове сортування)
void SortArr_2(int* arr, int n, int k, int s)
{
// Перевірка коректності введених індексів
if (k < 0) k = 0;
if (s >= n) s = n - 1;
if (k > s) return;
// Сортування методом простого обміну для вказаного діапазону
for (int i = k; i <= s; i++) {
for (int j = k; j < s - (i - k); j++) {
if (arr[j] > arr[j+1]) {
// Обмін елементів
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
Написати функцію з прототипом void SortArr_3(int* arr, int n), яка сортує за зростанням одновимірний масив arr методом прямого включення.
Напишіть програму, яка:
Результати роботи

Код програми з функціями
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
// Прототипи функцій
void RandArr(int* arr, int n, int a, int b); // Заповнення масиву випадковими числами
void PrintArr(int* arr, int n); // Вивід масиву на екран
void SortArr_3(int* arr, int n); // Сортування методом прямого включення
int main()
{
srand(time(0)); // Ініціалізація генератора випадкових чисел
int a, b;
cout << "Введіть межі діапазону [a, b]: ";
cin >> a >> b;
int n;
cout << "Введіть розмір масиву: ";
cin >> n;
int mass[n]; // Оголошення масиву
RandArr(mass, n, a, b); // Заповнення масиву
cout << "Початковий масив: ";
PrintArr(mass, n); // Вивід початкового масиву
SortArr_3(mass, n); // Сортування методом прямого включення
cout << "Відсортований масив: ";
PrintArr(mass, n); // Вивід відсортованого масиву
return 0;
}
// Функція заповнення масиву випадковими числами
void RandArr(int* arr, int n, int a, int b)
{
for (int i = 0; i < n; i++) {
arr[i] = a + rand() % (b - a + 1);
}
}
// Функція виведення масиву
void PrintArr(int* arr, int n)
{
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
// Функція сортування методом прямого включення (insertion sort)
void SortArr_3(int* arr, int n)
{
for (int i = 1; i < n; i++) {
int key = arr[i]; // Поточний елемент для вставки
int j = i - 1;
// Переміщення елементів, більших за key, на одну позицію вперед
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key; // Вставка key у правильну позицію
}
}
Відсортуйте за спаданням одновимірний масив. Використовуйте функції: RandArr, PrintArr, SortArr_1, SwapArr.
Відсортуйте за зростанням одновимірний масив. Використовуйте функції: RandArr, PrintArr, SortArr_2.
Відсортуйте за спаданням кожну половину одновимірного масиву. Використовуйте функції: RandArr, PrintArr, SortArr_1, SwapArr.
Відсортуйте за зростанням кожну половину одновимірного масиву. Використовуйте функції: RandArr, PrintArr, SortArr_2.
Відсортуйте першу половину одновимірного масиву за спаданням, а другу половину за зростанням. Використовуйте функції: RandArr, PrintArr, SortArr_1, SwapArr.
Відсортуйте першу половину одновимірного масиву за зростанням, а другу половину за спаданням. Використовуйте функції: RandArr, PrintArr, SortArr_2, SwapArr.
Відсортуйте за зростанням елементи одновимірного масиву між першим та останнім додатними елементами. Якщо хоча б один із елементів не знайдено, то вивести повідомлення. Використовуйте функції: RandArr, PrintArr, FindFirst, FindLast, SortArr_1.
Відсортуйте за спаданням елементи одновимірного масиву між першим та останнім від’ємними елементами. Якщо хоча б один із елементів не знайдено, то вивести повідомлення. Використовуйте функції: RandArr, PrintArr, FindFirst, FindLast, SortArr_2, SwapArr.
Відсортуйте за зростанням елементи одновимірного масиву між першим та останнім парними елементами. Якщо хоча б один із елементів не знайдено, то вивести повідомлення. Використовуйте функції: RandArr, PrintArr, FindFirst, FindLast, SortArr_1.
Відсортуйте за спаданням елементи одновимірного масиву між першим парним та останнім непарним елементами. Якщо хоча б один із елементів не знайдено, то вивести повідомлення. Використовуйте функції: RandArr, PrintArr, FindFirst, FindLast, SortArr_2, SwapArr.
Відсортуйте за зростанням елементи одновимірного масиву між першим мінімальним та останнім максимальним елементами. Якщо масив порожній, то вивести повідомлення. Використовуйте функції: RandArr, PrintArr, IndMin, IndMax, SortArr_1.
Відсортуйте за спаданням елементи одновимірного масиву до першого мінімального елемента, та за зростанням після нього. Мінімальний елемент залиште на місці. Використовуйте функції: RandArr, PrintArr, IndMin, SortArr_2, SwapArr.
Відсортуйте за зростанням елементи одновимірного масиву до першого максимального елемента, та за спаданням після нього. Максимальний елемент залиште на місці. Використовуйте функції: RandArr, PrintArr, IndMax, SortArr_1, SwapArr.
Відсортуйте за зростанням елементи одновимірного масиву до першого максимального елемента, за спаданням між першим та останнім максимальними елементами включно з ними, та за зростанням після останнього максимального. Використовуйте функції: RandArr, PrintArr, IndMax (дві функції: для першого та для останнього), SortArr_2, SwapArr.
Відсортуйте за спаданням елементи одновимірного масиву до першого мінімального елемента, за зростанням між першим та останнім мінімальним елементами включно з ними, та за спаданням після останнього мінімального. Використовуйте функції: RandArr, PrintArr, IndMin (дві функції: для першого та для останнього), SortArr_1, SwapArr.
Відсортуйте за зростанням два одновимірні масиви: arr1 з n елементів та arr2 з m елементів. Використовуйте функції: RandArr, PrintArr, SortArr_2. Напишіть функцію з прототипом MergeArr(int* arr1, int n, int* arr2, int m, int* arr3), яка зливає масиви arr1 та arr2 у масив arr3, не порушуючи зростання. Масив arr3 не сортувати!
Відсортуйте за спаданням два одновимірні масиви: arr1 з n елементів та arr2 з m елементів. Використовуйте функції: RandArr, PrintArr, SortArr_3, SwapArr. Напишіть функцію з прототипом MergeArr(int* arr1, int n, int* arr2, int m, int* arr3), яка зливає масиви arr1 та arr2 у масив arr3, не порушуючи спадання. Масив arr3 не сортувати!