Загрузка данных


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>

void shakerSort(int* arr, int size) {
    int left = 0;
    int right = size - 1;

    while (left < right) {
        for (int i = left; i < right; i++) {
            if (arr[i] > arr[i + 1]) {
                int temp = arr[i];
                arr[i] = arr[i + 1];
                arr[i + 1] = temp;
            }
        }
        right--;

        for (int i = right; i > left; i--) {
            if (arr[i - 1] > arr[i]) {
                int temp = arr[i];
                arr[i] = arr[i - 1];
                arr[i - 1] = temp;
            }
        }
        left++;
    }
}

void printArray(int* arr, int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));

    int mySize;
    printf("Введите количество элементов: ");
    scanf("%d", &mySize);

    int* myArray = (int*)malloc(mySize * sizeof(int));
    printf("Введите элементы через пробел:\n");
    for (int i = 0; i < mySize; i++) {
        scanf("%d", &myArray[i]);
    }

    printf("Ваш набор данных:\n");
    printArray(myArray, mySize);

    shakerSort(myArray, mySize);

    printf("После сортировки:\n");
    printArray(myArray, mySize);
    free(myArray);

    printf("\nСлучайный набор данных:\n");
    int size = 10;
    int randomArray[10];
    for (int i = 0; i < size; i++) {
        randomArray[i] = rand() % 100;
    }
    printArray(randomArray, size);

    shakerSort(randomArray, size);

    printf("После сортировки:\n");
    printArray(randomArray, size);

    return 0;
}