Also wenn du deine Befehlstabelle alphabetisch ordnest, dann fängst du einfach in der Mitte an zu suchen, und vergleichst das erste Zeichen der Eingabe mit dem ersten des Befehls:
a) ist es größer, so musst du weiter hinten suchen (wieder halbieren)
b) ist es kleiner, musst du weiter vorne suchen
c) bei Gleichheit musst du das nächste Zeichen vergleichen, bei Ungleichheit siehe a und b, bei Gleichheit c
=> Du erhälst logarithmische Laufzeit. O(log n)

Noch effektiver wäre wahrscheinlich eine Hashtabelle, nehmen wir mal als Beispiel die Quersumme deines Befehls (also der Ascii Werte der Zeichen) modulo einem bestimmten Wert. Dann schaust du in einem Array an entsprechender Stelle nach.
Du vergleichst dann noch ob der String auch wirklich überein stimmt. (Ansonsten falsche Eingabe).
=> Bei begrenzter Befehlslänge hast du quasi konstante Laufzeit! O(1)

Hierbei musst du jedoch noch schauen, wenn du zwei Befehle hast, bei der die Hashfunktion das gleiche Ergebnis liefert. Dann musst du evtl. zwei oder drei Vergleiche machen....

Ich hoffe das hilft dir weiter!

mfg
zerush