Pagini recente » Cod sursa (job #2506574) | Cod sursa (job #2368729) | Cod sursa (job #2457012) | Cod sursa (job #1167343) | Cod sursa (job #2512280)
#include <iostream>
#include <fstream>
using namespace std;
int a[100];
void merge(int l,int mid,int h){
int i = l;int j = mid+1;
int b[100];int p = 0;
while(i<=mid && j <=h){
if(a[i] < a[j])
{
p++;b[p] = a[i];i++;
}
else{
p++;b[p] = a[j];j++;
}
}
for(;i<=mid;i++){
p++;b[p] = a[i];
}
for(;j<= h;j++){
p++;b[p] = a[j];
}
int q = l;
for(int k = 1;k<= p;k++){
a[q] = b[k];
q++;
}
}
void mergeSort(int l ,int h){
if(l < h){
int mid = (l+h)/2;
mergeSort(l,mid);
mergeSort(mid+1,h);
merge(l,mid,h);
}
}
int main()
{ ifstream f("algsort.in");
ofstream g("algsort.out");
int n,i;
f>> n;for(i = 1;i<= n;i++){
f>>a[i];
}
mergeSort(1,n);
for(int k = 1;k<= n;k++)
g << a[k]<< " ";
return 0;
}