[elektro] file sorbarendezés név szerint
Palasik Sandor
palasik at mail.datanet.hu
Sun Nov 3 10:07:39 CET 2013
> Elegendő úgy is, hogy order[100]={12,1,4,8,3....} stb 100 elemű tömb adja meg az
> eredeti konstans random lista alapjan az adott file melyik helyet foglalja el a
> rendezett listaban.
Szerintem heapsort. Annak pont elég ez az egy tömb és nem rekurzív.
Már nem emlékszem, hogy honnan vettem ezt a verziót:
void heapsort()
{
int i,j,left,right;
if (linenum < 2)
return;
right = linenum-1;
left = linenum/2;
for (;;) {
if (left > 0) {
/* Still building heap */
left--;
}
else {
/* Removing top element from heap */
swap(0,right);
right--;
if (right == 0)
/* All elements removed from heap */
break;
}
j = left;
for (;;) {
i = j;
j = j*2+1;
if (j < right &&
(*compare)(j,j+1) < 0)
j++;
if (j > right ||
(*compare)(i,j) >= 0)
break;
/* Correcting heap */
swap(i,j);
}
}
}
Palasik Sándor
More information about the Elektro
mailing list