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:
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)