private void bubbleDown(int pos) {
        int c1Pos = 2*pos + 1;
        int c2Pos = 2*pos + 2;

        int maxPos = c1Pos;
        if(c1Pos <= len - 1) {
            if(c2Pos <= len - 1) {
                if(a[c1Pos] < a[c2Pos]) maxPos = c2Pos;
            }

            if(a[maxPos] > a[pos]) {
                swap(a, maxPos, pos);
                bubbleDown(maxPos);
            }
        }
    }