Как-то нехорошо написать комментарий, а потом быстренько удалить. Да и формулы не скопировались (да, это формулы из Word, я правильно понял?) Что я вижу.
1. Первый параметр — это и есть функция для правой части.
2. «Массив размера значений зависимых переменных». Может, «массив значений независимых переменных»?
3. «Начальное число разбиений отрезка интегрирования» и «шаг интегрирования» обратно пропорциональны друг другу, не так ли?
4. Эта функция выдаст только то, что получится в конце; в ней нет никакого потребителя результатов.
Мы храним в этой очереди…
• самый большой элемент
• самый большой из следующих за ним
• самый большой из следующих за вторым
и т.д.
Как только большой уходит, «самый большой из следующих» автоматом занимает его место.
Я же написал: банальная кольцевая очередь ёмкостью w−1 (обычно, чтобы различать полную и пустую очередь, делают один холостой элемент, т.е. буфер длины w).
А если приоритетная — то две проблемы. 1) Что в ней будет приоритетом? 2) В сложность не вписываемся.
Алгоритм тяжёлый, дайте ещё подумать.
Первый алгоритм не решает задачу — например, убывающая последовательность 5, 4, 3, 2, 1 даст пересчёт на каждой итерации, O(n²).
Второй вообще заметает сложность под ковёр, т.к. сложность зависит от того, как действует список «лучших», но, в любом случае, не n².
Скорее всего, ты устроил гонку между VCL и потоком. Я-то напишу вечером, когда вернусь, но почти уверен, что когда будешь восстанавливать прикладную функциональность, гонка снова начнётся.
Вопрос: что ты передаёшь внутрь потока и что из него возвращаешь? Имена файлов? Набор TJpeg?
2. Что я должен сделать?