Cod sursa(job #2438935)

Utilizator red_devil99Mancunian Red red_devil99 Data 14 iulie 2019 13:45:36
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;
#define maxi (1 >> 31)
void swap(int *a, int *b){
	int t  = *a;
	*a = *b;
	*b = t;
}

int partition(int vec[], int low, int high){
	int i = low - 1;
	int pivot = vec[high];
	for(int j = low; j <=high -1; j++){
		if(vec[j] <= pivot){
			i++;
			swap(&vec[i], &vec[j]);
		}
	}
	swap(&vec[high], &vec[i+1]);
	return (i+1);

}

void quick(int vec[], int low, int high){
	if(low < high){
		int pi = partition(vec, low, high);
		quick(vec, low, pi-1);
		quick(vec, pi+1, high);
	}
}

int main(){
	ifstream fin("algsort.in");
	ofstream fout("algsort.out");
	int n, vec[500000];
	fin >> n;
	for(int i = 0; i < n; i++){
		fin >> vec[i];
	}

	quick(vec, 0, n-1);

	for(int i = 0; i < n; i++){
		fout << vec[i];
	}

	return 0;

}