Pagini recente » Cod sursa (job #1705762) | Cod sursa (job #2187275) | Cod sursa (job #2850463) | Cod sursa (job #641686) | Cod sursa (job #972797)
Cod sursa(job #972797)
#include<fstream>
#include<iostream>
using namespace std;
long quicksort(long v[100], long stanga, long dreapta)
{
long i, j, mijloc, aux; // variabilele
i=stanga; // initializarea
j=dreapta; // indicilor
mijloc=v[(stanga+dreapta)/2]; // initializarea variabilei - pivot
while(i<=j)
{
while(v[i]<mijloc) // apropierea i-ului de mijloc
i++;
while(v[j]>mijloc) // apropierea j-ului de mijloc
j--;
if(i<=j) //conditia efectuarii operatiei de interschimbare
{
aux=v[i];
v[i]=v[j]; // operatia de interschimbare
v[j]=aux;
i++;
j--;
}
}
if(stanga<j) //recursivitatea
quicksort(v, stanga, j); // in partea stanga
if(i<dreapta)
quicksort(v, i, dreapta); // in partea dreapta
}
int main()
{
ifstream in("algsort.in");
ofstream out("algsort.out");
long i,a[500005],n;
in>>n;
for(i=0;i<n;i++)
in>>a[i];
quicksort(a,0,n-1);
for(i=0;i<n;i++)
out<<a[i]<<" ";
out.close();
in.close();
return 0;
}