字典字符串比较算法的工作原理非常简单;循环比较字符代码,如果字符不相等则返回结果。
C 语言的示例可以在这里找到:
https://github.com/gcc-mirror/gcc/blob/master/libiberty/memcmp.c
应该考虑到您需要比较单个静态编码中的字符,例如在 Swift 中我在 UTF-32 中使用了逐字符比较。使用 memcmp 的数组排序选项将完全适用于单字节字符,在其他情况下(可变长度编码),顺序可能不正确。我不排除基于变长编码实现的可能性,但很可能会复杂一个数量级。
该算法的时间复杂度在最好情况下为 O(1),在平均和最坏情况下为 O(n)
来源
https://ru.wikipedia.org/wiki/Lexicography_order
来源
https://gitlab.com/demensdeum /algorithms/blob/master/lexiCompare/lexiCompare.swift