Cod sursa(job #2274025)

Utilizator richard26Francu Richard richard26 Data 1 noiembrie 2018 11:12:05
Problema Sortare prin comparare Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include<bits/stdc++.h>

using namespace std;

int part(int arr[], int st, int dr)
{
	int pivot = arr[(st + dr)/2];
	st = st - 1;
	int i = st - 1;
	for(int j = st; j <= dr - 1; j++){
		if(arr[j] <= pivot){
			i++;
			int aux;
			aux = arr[j];
			arr[j] = arr[i];
			arr[i] = aux;
		}
	}
	i++;
	int aux = arr[(st + dr)/2];
	arr[(st+dr)/2] = arr[i];
	arr[i] = aux;
	return i ;
}

void quickSort(int arr[], int st, int dr)
{
	if(st < dr){
		int p = part(arr,st,dr);
		quickSort(arr, st, p);
		quickSort(arr, p + 1, dr);
	}
}




int main(){
	ifstream f("algsort.in");
	ofstream g("algsort.out");
	int arr[500001], i, n;
	f>>n;
	for(i = 1; i <= n; i++) f>>arr[i];
	quickSort(arr, 1, n);
	for(i = 1; i <= n; i++) g<<arr[i]<<" ";	
	return 0;
}