Cod sursa(job #2083801)

Utilizator GabiMrgineanGabi M. GabiMrginean Data 8 decembrie 2017 10:01:52
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream in("algsort.in");
ofstream out("algsort.out");

int arr[500000], n;

void Read()
{
	in>>n;
	for (int i=1;i<=n;i++)
		in>>arr[i];
}

int Partition (int arr[], int low, int high)
{
	int pivot =  arr[high];
	int i = low - 1;

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

void QuickSort(int arr[], int low, int high)
{
	if (low<high)
	{
		int pi = Partition(arr, low, high);
		QuickSort(arr,low, pi-1);
		QuickSort(arr, pi+1, high);
	}
}

void Print()
{
	for (int i=1;i<=n;i++)
		out<<arr[i]<<" ";
}

int main()
{
	Read();
	QuickSort(arr,1,n);
	Print();
	return (0);
}