public void quickSort(ArrayList<Integer> in, Integer l, Integer r) {
        Integer left = l, right = r;
        Integer pivot = this.main.getNumbers().get(l + (r - l) / 2);
        this.main.setYellow(l + (r - l) / 2);

        while (left <= right) {
            while (this.main.getNumbers().get(left) < pivot) {
                this.main.compare(left, l + (r - l) / 2);
                left++;
            }
            while (this.main.getNumbers().get(right) > pivot) {
                this.main.compare(right, l + (r - l) / 2);
                right--;
            }
            this.main.compare(left, right);
            if (left <= right) {
                this.main.swap(left, right);
                left++;
                right--;
            }
        }
        if (l < right) {
            this.quickSort(this.main.getNumbers(), l, right);
        }
        if (left < r) {
            this.quickSort(this.main.getNumbers(), left, r);
        }
    }