Я сканирование большого источника данных, в настоящее время около 8 миллионов словарных статей, извлекая на строку на запись, которую я хочу в алфавитном порядке.
Currenlty Я положил их в массиве затем сортировать индекс к ним , используя qsort()который работает отлично.
Но из любопытства я имею в виду, а не вставляя каждую строку в структуру данных, которая поддерживает их в алфавитном порядке, как я просматриваю их из источника данных, отчасти из-за опыта emlplementing один, отчасти потому, что он будет чувствовать себя быстрее, без ожидания для сортировка завершить после завершения осмотра (-:
Какая структура данных будет наиболее просто реализовать в C?
ОБНОВИТЬ
Для уточнения, только операции мне нужно выполнить при вставке элемента и сброса индекса, когда это делается, с помощью которого я имею в виду для каждого элемента в исходном порядке дамп целое число, представляющее порядок это после сортировки.
РЕЗЮМЕ
- Проще всего реализовать бинарные деревья поиска.
- Самобалансировани бинарные деревья гораздо лучше, но нетривиальным реализовать.
- Вставка может быть сделана итерационно, но с упорядочиванием обхода для захоронения результатов и после заказа обхода для удаления дерева, когда сделано и требует либо рекурсии или явный стека.
- Без реализации балансировки, пробеги заказанного ввода приведет к вырожденной худшем случае, который является связным списком. Это означает, что глубокие деревья, которые сильно влияют на скорость операции вставки.
- слегка Шаркая вход может распасться упорядоченный ввод значительно и проще реализовать эту балансировку.













