я ...
Я немного пьян. (Это может быть удалено SO модами.) (Edit: я очень пьян.)
Однако, для вашего конкретного случая использования ....
Я ищу лучший способ поиска 8-символьной строки в AS3, чтобы увидеть
если оно содержит слово или слова. У меня уже есть словарь слов
загружается во Flash, с ...
Я думал разбить это на 26 массивов для каждого
начальная буква, а затем, возможно, эти массивы в массивы
слова различной длины (поэтому все 8 букв, начинающиеся с буквы
вместе и т. д.).
Я мог бы предложить древовидную структуру - это означает, что у вас будет 26 ^ 8 комбинаций букв. Я полагаю, что это будет более быстрый поиск, чем поиск в массиве, так как вам не придется перебирать массив, чтобы найти свое значение.
Каждый символ вашей строки будет слоем вашего дерева. В идеале вы сможете хорошо остановиться до того, как достигнете максимальной ветви. Ваш максимальный поиск будет 26 ^ 8, независимо от того, что это число.
Лучшее в этом подходе состоит в том, что с древовидной структурой повторение вдоль дерева должно быть тривиальным с точки зрения написания кода. Вам нужно только хранить слова словаря. Таким образом, если кто-то введет «cbyir», вы узнаете (по второму символу), что ввод не соответствует словарному слову. (Если только нет слова, начинающегося с CB. О Вебстер, где ты?)
Еще одно преимущество этого - вы можете легко проверить каждый символ вашей строки. Если исходящий символ не совпадает (или третий, или четвертый ...), вы можете отказаться от этого поиска и выйти рано; ваша функция не должна быть наивной.
Опять же, я пьян. Я желаю вам удачи! :-D Если у вас есть какие-либо вопросы, пожалуйста, прокомментируйте, так как я знаю, что это может быть не ясно.
Редактировать: я вернулся к этому ответу, потому что я думал об этом. Возможная реализация может использовать класс словаря AS3; Вы можете иметь словари, указывающие на словари. Это будет намного быстрее, чем поиск в массиве, так как время поиска для словарей составляет O (1). Это означает, что поиск в вашем дереве будет действительно, действительно быстрым - количество итераций будет равно количеству букв в вашем слове, а не количеству возможных комбинаций букв в вашем слове.
Дайте что-то вроде этого; Я уверен, что это сработает. Если у вас есть вопросы по реализации, дайте мне знать.