private List<KDPoint> insertionSort(List<KDPoint> data, boolean splitaxis) {
        for (int i = 1; i < data.size(); i++) {
            KDPoint aux = data.get(i);
            int j;

            for (j = i - 1; j >= 0 && data.get(j).getCoord(splitaxis) > aux.getCoord(splitaxis); j--)
                data.set(j + 1, data.get(j));

            data.set(j + 1, aux);
        }

        return data;
    }