Cod sursa(job #3211154)

Utilizator Dobricean_IoanDobricean Ionut Dobricean_Ioan Data 8 martie 2024 16:55:45
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <cstdlib> 
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");

const int DIM = 500005;
int n, v[DIM];

void QuickSort(int st, int dr) {

    if (st < dr) {
		
	        int m = (st + rand() % (dr-st+1));
	        int temp = v[st];
	        
	        v[st] = v[m];
	        v[m] = temp;
	        int i = st, j = dr, d = 0;
	        
	        while (i < j) {
	            if (v[i] > v[j]) {
	                temp = v[i]; 
	                v[i] = v[j];
	                v[j] = temp;
	                d = 1 - d;
	            } i += d;
	            j -= 1 - d;
	        }
	        
	        QuickSort(st, i - 1);
	        QuickSort(i + 1, dr);
	    }
}
int main() {
	
    fin >> n;
    for (int i = 0 ; i < n ; i ++) 
		fin >> v[i];
    
    QuickSort(0, n - 1);
    
    for (int i = 0 ; i < n ; i ++)
		fout << v[i] << " ";
    return 0;
}