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;
}