Cod sursa(job #2898305)

Utilizator mbrianaMerealbe Cris-Briana mbriana Data 6 mai 2022 16:21:42
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.23 kb
#include <iostream>
using namespace std;
void merge(int *,int, int , int );
void merge_sort(int *arr, int stg, int dr)
{
    int mij;
    if (stg < dr){
        mij=(stg+dr)/2;
        merge_sort(arr,stg,mij);
        merge_sort(arr,mij+1,dr);
        merge(arr,stg,dr,mij);
    }
}
void merge(int *arr, int stg, int dr, int mij)
{
    int i, j, k, c[50];
    i = stg;
    k = stg;
    j = mij + 1;
    while (i <= mij && j <= dr) {
        if (arr[i] < arr[j]) {
            c[k] = arr[i];
            k++;
            i++;
        }
        else  {
            c[k] = arr[j];
            k++;
            j++;
        }
    }
    while (i <= mij) {
        c[k] = arr[i];
        k++;
        i++;
    }
    while (j <= dr) {
        c[k] = arr[j];
        k++;
        j++;
    }
    for (i = stg; i < k; i++)  {
        arr[i] = c[i];
    }
}
int main()
{
    int myarray[30], nr;
    cout<<"Cate elemente are vectorul:";
    cin>>nr;
    cout<<"Introduceti "<<nr<<" elemente:";
    for (int i = 0; i < nr; i++)
    {
        cin>>myarray[i];
    }
    merge_sort(myarray, 0, nr-1);
    cout<<"Vectorul sortat este: ";
    for (int i = 0; i < nr; i++)
    {
        cout<<myarray[i]<<" ";
    }
}