Cod sursa(job #2612200)

Utilizator paulvlad34Munteanu Vlad Paul paulvlad34 Data 8 mai 2020 16:39:12
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.35 kb
#include <bits/stdc++.h>
using namespace std;

void interclasare(int arr[], int l, int m, int r) 
{ 
    int i, j, k; 
    int n1 = m - l + 1; 
    int n2 =  r - m; 
  
    int L[n1], R[n2]; 
  
    
    for (i = 0; i < n1; i++) 
        L[i] = arr[l + i]; 
    for (j = 0; j < n2; j++) 
        R[j] = arr[m + 1+ j]; 
  
    
    i = 0; 
    j = 0; 
    k = l; 
    while (i < n1 && j < n2) 
    { 
        if (L[i] <= R[j]) 
        { 
            arr[k] = L[i]; 
            i++; 
        } 
        else
        { 
            arr[k] = R[j]; 
            j++; 
        } 
        k++; 
    } 
  
    
    while (i < n1) 
    { 
        arr[k] = L[i]; 
        i++; 
        k++; 
    } 
  
    
    while (j < n2) 
    { 
        arr[k] = R[j]; 
        j++; 
        k++; 
    } 
} 
  

void merge(int arr[], int l, int r) 
{ 
    if (l < r) 
    { 
        
        int m = l+(r-l)/2; 
  
        
        merge(arr, l, m); 
        merge(arr, m+1, r); 
  
        interclasare(arr, l, m, r); 
    } 
} 
  

  
/* Driver program to test above functions */
int main() 
{ 
	ifstream f("in.txt");
	ofstream f1("out.txt");
	int n;
	f>>n;
	int v[n];
	for (int i=0;i<n;i++)
		f>>v[i];
		 
    
  
    merge(v, 0, n-1); 
    for (int i=0;i<n;i++)
    	f1<<v[i]<<" ";
  
    
    return 0; 
}