private void recQuickSort(int left, int right, int position, SplitNode spNode) {
        int size = right-left+1;
        int newPos = (position == 0) ? 1 : 0;

        if(size == 1) {
            if(position == 0) spNode.setLeft(new EndNode(spNode, objects[position]));
            else spNode.setRight(new EndNode(spNode, objects[position]));
        }else if(size < 3) {
            if(objects[left].getPosition(position) > objects[right].getPosition(position)) swap(left, right);
            spNode
                    .setLeft(new EndNode(spNode, objects[left]))
                    .setRight(new EndNode(spNode, objects[right]));
            return;
        }else{
            SpelObject median = getMediaan(left, right, position);
            int partition = partition(left, right, median.getPosition(position), position);

            recQuickSort(left, partition, newPos, new SplitNode(spNode).setLeft(new EndNode(spNode, objects[left])));
            recQuickSort(partition+1, right, newPos, new SplitNode(spNode).setRight(new EndNode(spNode, objects[right])));
        }

        printValues();
    }