基数排序的时间复杂度为O(kn),其中n是要排序的关键字数,k是关键字长度。同样地,在trie中插入、删除和查找操作的时间复杂度也为O(k)。然而,假设所有元素都是不同的,那么k≥log(n)吗?如果是这样的话,这意味着基数排序的渐近时间复杂度是O(nlogn),与快速排序相等,而trie操作的时间复杂度是O(logn),与平衡二叉搜索树相等。当然,常数因子可能会有很大的差异,但是渐近时间复杂度不会。这是真的吗?如果是,那么基数排序和tries是否具有其他优点,超过其他算法和数据结构?
编辑:快速排序及其竞争对手执行O(nlogn)比较;在最坏情况下,每个比较将花费O(k)时间(仅在检查的最后一位数字上不同)。因此,这些算法需要O(knlogn)的时间。按照同样的逻辑,平衡二叉搜索树操作需要O(klogn)的时间。
编辑:快速排序及其竞争对手执行O(nlogn)比较;在最坏情况下,每个比较将花费O(k)时间(仅在检查的最后一位数字上不同)。因此,这些算法需要O(knlogn)的时间。按照同样的逻辑,平衡二叉搜索树操作需要O(klogn)的时间。