Pagini recente » Cod sursa (job #69639) | Cod sursa (job #2132245) | Cod sursa (job #2545435) | Cod sursa (job #2294036) | Cod sursa (job #2898323)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
std::ifstream fin("algsort.in");
std::ofstream fout("algsort.out");
void MergeSort(vector<int> v,int r,int mid,int l){
int temp[l - r + 1];
int i = r, j = mid+1, k = 0;
while(i <= mid && j <= l) {
if(v[i] <= v[j]) {
temp[k] = v[i];
k += 1; i += 1;
}
else {
temp[k] = v[j];
k += 1; j += 1;
}
}
while(i <= mid) {
temp[k] =v[i];
k += 1; i += 1;
}
while(j <= l) {
temp[k] = v[j];
k += 1; j += 1;
}
for(i = r; i <= l; i += 1) {
v[i] = temp[i - r];
}
}
void MergeSortInbtermediar(vector<int> v, int r, int l){
if(r < l) {
int mid = (r+l) / 2;
MergeSortInbtermediar(v, r, mid);
MergeSortInbtermediar(v, mid+1, l);
MergeSort(v, r, mid,l);
}
}
int main() {
int n;
std::vector<int> v;
fin>>n;
for(int i=0;i<n;i++)
{
int a;
fin>>a;
v.push_back(a);
}
MergeSort(v,v.begin();v.end());
return 0;
}