rendered paste body#include <stdio.h>
int licznik=0;
void QS(int *tab, int l, int p)
{
int i,j,v,tmp;
v=tab[(l+p)/2];
for(i=l,j=p;i<j;)
{
while (tab[i]<v) {i++; licznik++;}
licznik++;
while (tab[j]>v) {j--; licznik++;}
licznik++;
if (i<=j)
{
tmp=tab[i];
tab[i]=tab[j];
tab[j]=tmp;
i++;
j--;
}
}
if (l<j) QS(tab,l,j);
if (p>i) QS(tab,i,p);
}
int main()
{
FILE *plik;
FILE *plik1;
int a,i,n,*tab;
plik=fopen("in.txt","r");
if (plik)
{
fscanf(plik,"%d",&n);
tab=malloc(n*sizeof(int));
for (i=0;i<n;i++)
{
fscanf(plik,"%d",&a);
tab[i]=a;
};
}
if (n!=1) QS(tab,0,n-1);
plik1=fopen("out.txt","w");
for (i=0;i<n;i++)
{
fprintf(plik1,"%d ",tab[i]);
};
fprintf(plik1,"\nLicznik=%d",licznik);
fclose(plik);
fclose(plik1);
free(tab);
return 0;
}