Pagini recente » Cod sursa (job #2851298) | Cod sursa (job #2669281) | Cod sursa (job #2198718) | Cod sursa (job #2045719) | Cod sursa (job #611296)
Cod sursa(job #611296)
#include<iostream>
#include<fstream>
using namespace std;
fstream f("algsort.in",ios::in);
fstream g("algsort.out",ios::out);
void qSort(int v[], int stanga, int dreapta)
{
int 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
qSort(v, stanga, j); // in partea stanga
if(i<dreapta)
qSort(v, i, dreapta); // in partea dreapta
}
int main()
{
int n,v[500000],i,stanga,dreapta;
//Citirea sirului din fisier
f>>n;
for (i=0; i<n; i++)
f>>v[i];
qSort(v,0,n-1);
//Scrierea sirului in fisier
for (i=0; i<n; i++)
g<<v[i]<<" ";
f.close(); g.close();
return 0;
}