Доброго времени суток всем.
У меня небольшая проблема с перерисовкой моего алгоритма быстрой сортировки. Я уже тестировал алгоритм внутри другого файла, и он отлично работает. Проблема здесь в том, что я хочу его перекрасить. Это работает только для первых 10 итераций (меньше или больше). Я использую Java Swing.
Метод, позволяющий визуализировать сортировку (это правильно)
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
// Background nero
this.setBackground(Color.BLACK);
for(int i=0; i<SortingPanel.array.length; i++) {
// Imposto il colore dei rettangoli
g.setColor(Color.WHITE);
// Altezza dei rettangoli
int height = SortingPanel.array[i] * Options.RECTANGLE_HEIGHT;
// Posizione sull'asse delle ascisse
int xPosition = i * Options.RECTANGLE_WIDTH;
// Posizione sull'asse delle ordinate
int yPosition = Options.FRAME_HEIGHT - height;
// Coloro il rettangolo
g.fillRect(xPosition, yPosition, Options.RECTANGLE_WIDTH, height);
}
}
Быстрая сортировка
private int partition(int[] arr, int low, int high) throws InterruptedException {
int pivot = arr[high];
int left = low;
for(int i=low; i<high; i++) {
if(arr[i] < pivot) {
repaint();
Thread.sleep(1);
ArrayUtilities.swap(array, i, high);
left++;
}
}
repaint();
Thread.sleep(1);
ArrayUtilities.swap(array, high, left);
return left;
}
private void quicksort(int[] arr, int low, int high) throws InterruptedException {
if(low < high) {
int pi = partition(arr, low, high);
quicksort(arr, low, pi);
quicksort(arr, pi+1, high);
}
}