Pagini recente » Cod sursa (job #1715739) | Cod sursa (job #937065) | Cod sursa (job #2063437) | Cod sursa (job #2787161) | Cod sursa (job #1894594)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int A[50], n;
void merge_sort(int A[], int left, int right) {
if(right == left) return;
else {
int mid = (left + right) / 2;
merge_sort(A, left, mid);
merge_sort(A, mid + 1, right);
int i = left, j = mid + 1;
int n = mid, m = right;
int C[50], k = 0;
while(i <= n and j <= m) {
if(A[i] <= A[j]) {
C[++k] = A[i++];
}
else C[++k] = A[j++];
}
while(i <= n) C[++k] = A[i++];
while(j <= m) C[++k] = A[j++];
k = 1;
for(int i = left; i <= right; i++) A[i] = C[k++];
}
}
int main()
{
f >> n;
for(int i = 1; i <= n; i ++) f >> A[i];
merge_sort(A, 1, n);
for(int i = 1; i <= n; i ++)
g << A[i] << ' ';
return 0;
}