private void quicksort(int low, int high) throws InterruptedException {
		int i = low;
		int j = high;
		Thread.sleep(sleepTime);
		repaint();
		int pivot = list[low + (high - low) / 2];
		redColumn = low + (high - low) / 2;
		
		while (i <= j) {
			while (list[i] < pivot) {
				i++;
				blueColumn = i;
				Thread.sleep(4 * sleepTime);
				repaint();
			}
			while (list[j] > pivot) {
				j--;
				cyanColumn = j;
				Thread.sleep(4 * sleepTime);
				repaint();
			}

			if (i <= j) {
				int temp = list[i];
				list[i] = list[j];
				list[j] = temp;
				if(i == redColumn) {
					redColumn = j;
				} else if (j == redColumn) {
					redColumn = i;
				}
				Thread.sleep(4 * sleepTime);
				repaint();
				i++;
				j--;
			}
		}

		if (low < j) {
			quicksort(low, j);
		}
		if (i < high) {
			quicksort(i, high);
		}
		if(low > greenColumn) {
			greenColumn = low;
			blueColumn = -1;
			cyanColumn = -1;
		}
		repaint();
	}