28 void* quickselect(
void ** array,
int n,
int start,
int end)
36 int len = end - start;
37 #if ISOSPEC_BUILDING_R
38 int pivot = len/2 + start;
40 size_t pivot = random_gen() % len + start;
44 void* pval = array[pivot];
45 double pprob = getLProb(pval);
46 std::swap(array[pivot], array[end-1]);
48 for(
int i = start; i < end-1; i++)
50 if(getLProb(array[i]) < pprob)
52 std::swap(array[i], array[loweridx]);
56 std::swap(array[end-1], array[loweridx]);