/* void quicksort(int **nSample); in C */ private static void quickSort(int[] nSample) { int nItemPointer, nAnoterItemPointer, nLeft, nRight, nStackPtr = 0x00; int nCurrentSample, nBubble; stack[0x00].nLeft = 0x00; stack[0x00].nRight = SAMPLE_SIZE-0x01; do { nLeft = stack[nStackPtr].nLeft; nRight = stack[nStackPtr--].nRight; do { nItemPointer = nLeft; nAnoterItemPointer = nRight; nCurrentSample = nSample[(nLeft+nRight)/0x02]; do { while (nSample[nItemPointer] < nCurrentSample) nItemPointer++; while (nSample[nAnoterItemPointer] > nCurrentSample) nAnoterItemPointer--; if (nItemPointer <= nAnoterItemPointer) { nBubble = nSample[nItemPointer]; nSample[nItemPointer++] = nSample[nAnoterItemPointer]; nSample[nAnoterItemPointer--] = nBubble; } } while (nItemPointer <= nAnoterItemPointer); if (nItemPointer < nRight) { stack[++nStackPtr].nLeft = nItemPointer; stack[nStackPtr].nRight = nRight; } nRight = nAnoterItemPointer; } while (nLeft < nRight); } while (nStackPtr != -1); } // quickSort