All pastes #773258 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-11-14 11:37 UTC
rendered paste body
#include <stdio.h>
int licznik=0;

int Hoare(int *tab, int l, int p,int k) 
{ 
   int i,j,v,tmp;
if (l<p)
{
   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--;
    }
    }
   tab[(l+p)/2]=tab[i]; tab[i]=v;
 if (k==i) return tab[i-1];
 if (k>i) return Hoare(tab,i,p,k);
 else return Hoare(tab,l,j,k);
}
return tab[l];
}

int main()
{
 FILE *plik;
 FILE *plik1;
 int a,i,n,k,*tab,rozw;
 
 plik=fopen("in.txt","r");
 if (plik) 
 {
 fscanf(plik,"%d %d",&n,&k);
 tab=malloc(n*sizeof(int));

for (i=0;i<n;i++)
{
     fscanf(plik,"%d",&a);
     tab[i]=a;  
};
}
rozw=Hoare(tab,0,n-1,n-k);

plik1=fopen("out.txt","w");
 
fprintf(plik1,"%d\nLicznik=%d",rozw,licznik);
fclose(plik);
fclose(plik1);
free(tab);

return 0;
}