O algoritmo lexicográfico de comparação de strings funciona de maneira muito simples; os códigos dos caracteres são comparados em um loop e o resultado é retornado se os caracteres não forem iguais.
Um exemplo para a linguagem C pode ser encontrado aqui:
https://github.com/gcc-mirror/gcc/blob/master/libiberty/memcmp.c
Deve-se levar em consideração que você precisa comparar caracteres em uma única codificação estática, por exemplo em Swift usei comparação caractere por caractere em UTF-32. A opção de classificação de array usando memcmp funcionará exatamente para caracteres de byte único; em outros casos (codificações de comprimento variável) a ordem pode estar incorreta. Não descarto a possibilidade de implementação baseada em codificações de comprimento variável, mas provavelmente será uma ordem de magnitude mais complicada.
A complexidade de tempo do algoritmo é O(1) no melhor caso, O(n) no médio e no pior caso
Fontes
https://ru.wikipedia.org/wiki/Lexicographic_order
Fontes
https://gitlab.com/demensdeum /algoritmos/blob/master/lexiCompare/lexiCompare.swift