Я пишу программу, которая собирается генерировать кучу данных. Я бы хотел найти различные проценты по этим данным.Computing процентили
Очевидный способ сделать это - хранить данные в каком-то сортированном контейнере. Существуют ли библиотеки Haskell, которые предлагают контейнер, который автоматически сортируется и предлагает быстрый случайный доступ к произвольным индексам?
Альтернативой является использование неупорядоченного контейнера и выполнение сортировки в конце. Я не знаю, будет ли это быстрее. В любом случае, нам все еще остается необходимость в контейнере, который предлагает быстрый произвольный доступ. (Массив, возможно ...)
Предложения?
(Еще одна альтернатива - построить гистограмму, а не хранить весь набор данных в памяти. Но поскольку цель состоит в том, чтобы вычислить процентили очень точно, я не желаю идти по этому пути. Я также не знаю диапазон моих данных до тех пор, пока я не сгенерирую его ...)
Выполняют ли потоковые алгоритмы, такие как описанные в http://stackoverflow.com/questions/1248815/percentiles-of-live-data-capture, в соответствии с вашими потребностями? –
@JeffFoster Это похоже на то, что я пытаюсь сделать. Я не уверен, будет ли этот подход работать, но его стоит исследовать. – MathematicalOrchid