Cod sursa(job #1010920)

Utilizator bghimisFMI Ghimis Bogdan bghimis Data 15 octombrie 2013 21:29:52
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#include <vector>
using namespace std;

void swap (int *v, int i, int j)
{
	int tmp = v[i];
	v[i] = v[j];
	v[j] = tmp;
}

void qsort (int *v, int left, int right)
{
	int i, last;

	if (left >= right)
		return;

	swap (v, left, (left + right) / 2);

	last = left;	
	for (i = left + 1; i <= right; i++)
		if (v[i] < v[left])
			swap(v, i, ++last);

	swap (v, left, last);
	qsort (v, left, last - 1);
	qsort (v, last + 1, right);

}

int main()
{   
  ifstream cin("algsort.in");
  ofstream cout("algsort.out");
  
  int n;
  cin >> n;
  int v[500000];

  for(int i = 0; i < n; i++)
    cin >> v[i];

  qsort(v, 0, n - 1);
    
  cin.close();
  cout.close();
}