Algoritmo de comparação lexicográfica

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