Быстрый поиск элемента для функционального языка (Haskell)

Расширение (.png или .jpg) отсутствовало не в GetRealPathFromURI(), а в ImageHelpers.SaveFile(). Поэтому я сохраняю имя файла в другой переменной из пути, используя Path.GetFileName(), как показано ниже, и передаю полное имя файла при вызове ImageHelpers.SaveFile().

var fileName = Path.GetFileName(picturepath);
10
задан Dominique Fortin 23 March 2017 в 21:47
поделиться

3 ответа

Можно использовать Данные. Набор. Вы добавляете элемент путем создания нового набора из старого с insert и раздайте новый набор. Вы ищете, является ли элемент членом набора с member. Обе операции являются O (зарегистрируйте n).

Возможно, Вы могли рассмотреть использование монады состояния для поточной обработки передачи набора.

9
ответ дан 4 December 2019 в 01:32
поделиться

Эффективный поиск элементов в функциональных языках довольно сложен. Data.Set (как показано выше) реализован с использованием двоичного дерева, которое может быть построено чисто функциональным способом, обеспечивая операции поиска в O (log n). HashTables (которые не являются чисто функциональными) будут иметь O (1).

1
ответ дан 4 December 2019 в 01:32
поделиться

Я считаю, что Data.BitSet может быть O (n).

0
ответ дан 4 December 2019 в 01:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: