void quicksortStack (Item a[], int lo, int hi)
{
int i; Stack s = newStack();
StackPush(s,hi); StackPush(s,lo);
while (!StackEmpty(s)) {
lo = StackPop(s);
hi = StackPop(s);
if (hi > lo) {
i = partition (a,lo,hi);
StackPush(s,hi); StackPush(s,i+1);
StackPush(s,i-1); StackPush(s,lo);
}
}
}
|