Pagini recente » Cod sursa (job #2154517) | Cod sursa (job #918115) | Cod sursa (job #395102) | Cod sursa (job #2979917) | Cod sursa (job #645437)
Cod sursa(job #645437)
#include<fstream>
using namespace std;
unsigned int s[500000],N;
unsigned int part(unsigned int i,unsigned int j)
{unsigned int pivot=s[(i+j)/2];
unsigned int a=i,b=j,aux;
while(a<b)
{while(s[a]<pivot && a<N) a++;
while(pivot<s[b] && b>1) b--;
if(a<=b)
{aux=s[a];
s[a]=s[b];
s[b]=aux;
a++;
b--;
}
}
return a;
}
void quicks(unsigned int i,unsigned int j)
{if(i<j)
{unsigned int p=part(i,j);
if(i<p-1) quicks(i,p-1);
if(p<j) quicks(p,j);
}
}
int main()
{ifstream f("algsort.in");
f>>N;
for(unsigned int i=1;i<=N;i++)
f>>s[i];
f.close();
quicks(1,N);
ofstream g("algsort.out");
for(unsigned int i=1;i<=N;i++)
g<<s[i]<<" ";
g.close();
return 0;
}