#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>

void helyrevisz(int x[], int &i, int p, int r) {
	i=p-1;
	int j=p;
	int tmp;
	while (j!=r)
		if (x[j]<=x[r]) {
			tmp=x[j];
			i++;
			x[j]=x[i];
			x[i]=tmp;j++;
		} else {
			j++;
		}
	
	tmp=x[r]; i++; x[r]=x[i]; x[i]=tmp;
}

void gyorsrendezes(int x[], int p, int r) {
	int i;
	
	while (p<r) {
		helyrevisz(x,i,p,r);
		gyorsrendezes(x,p,i-1);
		p=i+1;
	}
}

int main() {
	int n=5000;
	int v[n];
	srand(time(NULL));
	for (int i=0;i<n;i++) {
		v[i]=rand();
	}

	gyorsrendezes(v,0,n-1);
	for (int i=0;i<n;i++) {
		printf("%i\n", v[i]);
	}
	
	return 0;
}
