Вы также можете использовать дерево, которое является древовидной структурой данных префикса - для сортировки в памяти.
Адреса электронной почты имеют ограничительный набор символов (a-z
, 0-9
, _
, .
и т. Д.), Поэтому в trieNode будут только эти символы.Это руководство по topcoder для trie - хорошая отправная точка, если вы еще не знаете о trie.
Вы должны пройти через все строки, чтобы построить дерево.
Поиск / сравнение занимает O (l) время, где l - длина сравниваемой строки.
Сортировка требует, чтобы вы пересекали все trieNode дерева дерева, используя DFS (поиск в глубину вначале) - O (| V | + | E |) время.