Algorithm-SISort
view release on metacpan or search on metacpan
dSP;
SvREFCNT_inc(a);
SvREFCNT_inc(b);
ENTER;
SAVETMPS;
PUSHMARK(sp);
XPUSHs(a);
XPUSHs(b);
PUTBACK;
numres=call_sv(SvRV(callback), G_SCALAR);
SPAGAIN;
if(numres==1) {
retnum = POPi;
} else {
retnum = 0;
}
PUTBACK;
FREETMPS;
LEAVE;
return retnum;
}
int _sort (SV* callback, SV* arrayref) {
int n; /* last element of array */
int i, j, step, ncompares;
SV *min, **minp, **A_i, **A_j, **ptr;
AV* A;
( run in 0.522 second using v1.01-cache-2.11-cpan-4e96b696675 )