Pagini recente » Cod sursa (job #1623441) | Cod sursa (job #2805399) | Cod sursa (job #1251198) | Cod sursa (job #3202004) | Cod sursa (job #640832)
Cod sursa(job #640832)
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
vector<long int>v;long int n;
void citire()
{
long int i,x;
f>>n;
for(i=1;i<=n;i++)
{
f>>x;
v.push_back(x);
}
}
void afisare()
{
long int i;
for(i=0;i<n;i++)
g<<v[i]<<' ';
}
void quicksort(long int stanga,long int dreapta)
{
long int mijloc=v[(stanga+dreapta)/2];
long int i=stanga,j=dreapta;
while(i<=j)
{
while(v[i]<mijloc)
i++;
while(v[j]>mijloc)
j--;
if(i<=j)
{
swap(v[i],v[j]);
i++;j--;
}
}
if(j>stanga)
quicksort(stanga,j);
if(i<dreapta)
quicksort(i,dreapta);
}
int main()
{
citire();
quicksort(0,n-1);
afisare();
f.close();
g.close();
return 0;
}