Какие параметры будут иметь фабрика алгоритмов сортировки? - PullRequest
0 голосов
/ 16 января 2012

Я думаю о создании программного обеспечения, генерирующего все возможные алгоритмы сортировки по заданным требованиям, и алгоритм наилучшего соответствия.Какие реальные требования вы бы указали для этого программного обеспечения?Как бы вы их указали.

Мои предложения:

getSortingAlgorithm(int memorySize, int timeConstraintInMillisec);

//getSortingAlgorithm("O(n)", "O(n*log(n))");
getSortingAlgorithm(AssymptomaticConstaint memoryConstraint, AssymptomaticConstaint timeConstraint);

Любые другие идеи укрепления, ослабления этих ограничений?

Ответы [ 3 ]

0 голосов
/ 16 января 2012

Вы также можете иметь стабильный / нестабильный параметр.

, например, сортировка пузырьков и сортировка выбора имеют сложность по времени: O (n2), память: O (1)

, но сортировка пузырьковстабильныйhttp://en.wikipedia.org/wiki/Category:Stable_sorts

0 голосов
/ 16 января 2012

Оптимизация по скорости в сравнении с хранилищем.

Перезапись, ограничение максимального объема и использование файлов для «резервного хранилища» («порция»).

Поддерживать порядок идентичных предметов (или нет).

Индекс сортировки?

Стабильность по отношению к лучшей средней скорости по сравнению с использованием «почти отсортированного» набора данных.

Размер набора данных - для более мелких лучше использовать более простую сортировку с меньшими настройками.

Размер ключей - это влияет на используемые структуры данных.

0 голосов
/ 16 января 2012

количество элементов и кэш * Размер / тип также может быть основанием для оптимизации производительности кэша сортировки.

Также логическое указаниеесли элементы имеют значение int , поскольку целочисленная сортировка не ограничена алгоритмами сравнения.

Количество потоков , которые можно использовать, также может быть проблемой: Попробуйтесоздавайте параллельные алгоритмы в вашей библиотеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...