lexicographic comparisons rows algorithm works very simple loop compares the character codes and the result is returned if the symbols are not equal.
An example for the C language can be found here:
https://github.com/gcc-mirror/gcc/blob/master/libiberty/memcmp.c
Keep in mind that you need to compare the characters in a single static encoding, such as Swift, I used the comparison character by character to UTF-32. Array sorting option using memcmp work exactly for single-byte character, otherwise (variable length coding) may order is incorrect. I do not rule out the possibility of implementation on the basis of a variable-length encoding, but is likely to be much more complicated.
Time complexity at most O(1), the average and worst-O(n)
References
https://ru.wikipedia.org/wiki/Лексикографический_порядок
Source Code
https://gitlab.com/demensdeum/algorithms/blob/master/lexiCompare/lexiCompare.swift