1
因此,在我的数据结构讲座中,我被告知可以使用k个键和n个元素将哈希表转换为已分摊数组O(log(k)* k + n)。但是,它背后没有任何理由。我发现它有点混乱,为什么我试图找到一个算法来做到这一点。将哈希表转换为O(log(k)* k + n)中的排序数组
我不能拿出一个。我想这应该是一个众所周知的,因为我们只是没有证据就注意到它,但我找不到它。你知道这个问题的解决方案吗?
因此,在我的数据结构讲座中,我被告知可以使用k个键和n个元素将哈希表转换为已分摊数组O(log(k)* k + n)。但是,它背后没有任何理由。我发现它有点混乱,为什么我试图找到一个算法来做到这一点。将哈希表转换为O(log(k)* k + n)中的排序数组
我不能拿出一个。我想这应该是一个众所周知的,因为我们只是没有证据就注意到它,但我找不到它。你知道这个问题的解决方案吗?
如果您的意思是按键排序,那么k * log(k)对键和n进行排序,以便根据排序后的键插入元素。因此O(klog(k)+ n)。该算法是:
步骤1取O(klog(k))个操作,步骤3取O(n)。
在散列表中共享相同键*排序*的项目吗? –
根据散列表中的键值或基于其他标准排序? – ilim
如果你需要一个算法,你必须精确地描述输入数据和输出数据,那么究竟是一个具有k个键和n个元素的散列表,以及这个排序后的数组究竟是什么。也允许k和n独立变化吗? – Gribouillis