All pastes #773257 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-11-14 11:36 UTC
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;
}