Pagini recente » Cod sursa (job #323722) | Cod sursa (job #3178486) | Cod sursa (job #2069637) | Cod sursa (job #2914136)
#include <bits/stdc++.h>
using namespace std;
void bubbleSort(vector<int>& v, int n)
{
int i, j;
for (i = 0; i < n - 1; i++)
for (j = 0; j < n - i - 1; j++)
if (v[j] > v[j + 1])
swap(v[j], v[j + 1]);
}
void merge(vector<int> &v, int l, int m, int r){
int i = l, j = m + 1, k = 0;
vector<int> c(r-l+1);
///interclasare
while(i <= m && j <= r) {
if(v[i]<=v[j])
c[k]=v[i++];
else
c[k]=v[j++];
k++;
}
while(i<=m)
c[k++]=v[i++];
while(j<=r)
c[k++]=v[j++];
for (i = l, k = 0; i <= r; i++, k++)
v[i] = c[k];
c.clear();
}
void merge_sort(vector<int> &v, int l, int r) {
if (l < r) {
int m = l+(r-l)/2;
merge_sort(v, l, m);
merge_sort(v, m+1, r);
merge(v, l, m, r);
}
}
void algsort_infoarena()
{
ifstream in("algsort.in");
ofstream out("algsort.out");
int n;
in >> n;
vector<int> v(n);
for(int i=0; i<n; i++) {
in >> v[i];
}
merge_sort(v, 0, n-1);
for(int i=0; i<n; i++) {
out << v[i]<< ' ';
}
in.close();
out.close();
}
int main()
{
algsort_infoarena();
return 0;
}