Cod sursa(job #1745660)

Utilizator IaroslavIaroslav Mazur Iaroslav Data 22 august 2016 13:50:45
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb

//#include "stdafx.h"
#include <fstream>
#include <iostream>

using namespace std;

ifstream in("algsort.in");
ofstream out("algsort.out");
int n;
int numbers[500000];

void quicksort(int l, int r)
{
	int pivot = numbers[(l + r) / 2];
	int left = l, right = r;
	while (l <= r)
	{
		while (numbers[l] < pivot)
			l++;
		while (numbers[r] >= pivot)
			r--;
		if (l < r)
		{
			int temp = numbers[l];
			numbers[l] = numbers[r];
			numbers[r] = temp;
			l++;
			r--;
		}
	}
	if (left < r)
		quicksort(left, r);
	if (right < l)
		quicksort(right, l);
}

int main()
{

	in >> n;
	for (int i = 0; i <= n - 1; i++)
		in >> numbers[i];
	/*bool ok = 1;
	while (ok)
	{
		ok = 0;
		for (int i = 0; i <= n - 2; i++)
			if (numbers[i] > numbers[i + 1])
			{
				int temp = numbers[i];
				numbers[i] = numbers[i + 1];
				numbers[i + 1] = temp;
				ok = 1;
			}
	}*/
	quicksort(0, n - 1);
	for (int i = 0; i <= n - 1; i++)
	{
		out << numbers[i] << " ";
	}
	return 0;
}