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


#include <iostream>
using namespace std;

void log_arr (int*arr, int m) {
    cout << "Sortet Array\n";
    for(int i = 0; i < m;i++) {
        cout << arr[i] << ' ';
    }
}

void bubbleSort(int* arr,int m)
{
    for(int i = 0; i < m; i++) {
        for(int j = 0; j < m-1;j++) {
            if(arr[j] > arr[j+1]) {
                swap(arr[j],arr[j+1]);
            }
        }
    }
}
void shakerSort(int* arr,int m)
{
    int left = 0;
    int right = m-1;

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

void quickSort(int* arr, int left,int right)
{
    int i = left;
    int j = right;
    
    int pivot = arr[(left+right)/2];

    while (i <= j)
    {
        while (arr[i] < pivot)
        {
            i++;
        }
        while (arr[j] > pivot)
        {
            j--;
        }

        if(i <= j) {
            swap(arr[i],arr[j]);
            i++;
            j--;
        }
        
        
        
    }
    if(left <= j ) {
            quickSort(arr,left,j);
    }
    if(i <= right) {
            quickSort(arr,i,right);
    }
    

    
}

int main()
{

    int arr2 [6];  
    srand(time(0));
    int n;
    int m;
    
    cout << "Select size - ";
    cin >> m;
    int left = 0;
    int right = m-1;
    int* arr = new int[m];
    int** arr1 = new int*[m];
    for(int i = 0; i < m; i++) {
        arr[i] = rand() % 55 - 78;
        cout << arr[i] << ' ';
    }
   
    while (true)
    {
        
        cout << "\n1. BubbleSort \n2.ShakerSort \n3.QuickSort \n0.Exit\n";
        cin >> n;
        switch (n)
        {
        case 1:
        {
            bubbleSort(arr,m);
            log_arr(arr,m);
            break;
        }
        case 2:
        {
            shakerSort(arr,m);
            log_arr(arr,m);
            break;
        }
        case 3:
        {
            quickSort(arr,left,right);
            log_arr(arr,m);
            break;
        }
        case 0:
        {
            exit(0);
        }
        default:
        {
            cout << "invalid command";
        }
        }
    }
}