Pagini recente » Cod sursa (job #1083999) | Cod sursa (job #283562) | Cod sursa (job #2305535) | Cod sursa (job #1317450) | Cod sursa (job #2898305)
#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]<<" ";
}
}