JavaFX - индикатор выполнения для метода сортировки - PullRequest
0 голосов
/ 23 октября 2019

Мне нужно создать программу JavaFX, которая создает список случайно сгенерированных 5-значных целых чисел, а затем использовать BubbleSort для их сортировки. Я должен связать метод сортировки с индикатором выполнения, чтобы показать его статус. Как мне связать индикатор выполнения с методом BubbleSort? (размер списка можно варьировать, чтобы получить наилучшие результаты)

1 Ответ

2 голосов
/ 24 октября 2019

ProgressBars часто не измеряют реальный прогресс (потому что иногда они не могут точно знать, сколько времени действительно потребуется для завершения и как далеко продвинулся процесс в данный момент). Если вы можете, то используйте реальный прогресс, в противном случае используйте оценку. В этом случае оценка могла бы работать лучше, если вы не можете найти какой-либо способ измерить реальный прогресс вашей сортировки пузырьков (я не пытался сделать это, и я не знаю, можете ли вы, как указал VGR вкомментарии).

То, что вы могли бы сделать, это сравнить ваши сортировки на основе входных наборов разных размеров. Если ожидается, что сортировка займет меньше секунды при заданном размере ввода, даже не показывайте индикатор выполнения. Если ожидается, что сортировка займет больше времени, при сортировке фактических данных рассчитайте оценку времени на основе результатов тестов для разных размеров входного набора. Запустите временную шкалу, независимую от фактического алгоритма сортировки, который обновляет прогресс на основе вашей оценки. Когда фактически закончите сортировку, остановите график и установите прогресс на 100%. Это не будет идеально, но, вероятно, будет достаточно хорошо.

Я оставлю реализацию этой предложенной стратегии заинтересованному читателю.

Другое, более простое, решение заключается в использовании неопределенного индикатора выполнения , который просто вращается довсе завершено. На самом деле это вовсе не показывает прогресс, это просто показывает, что что-то (вероятно) происходит. Иногда это подходит для некоторых задач, но для задачи измерения прогресса сортировки может быть предпочтительным отображение оценки прогресса или расчет реального прогресса.

...