懒惰插入/删除

时间:2012-10-17 14:06:44

标签: c++ lazy-evaluation

我有一个编辑优先级队列的任务,并实现插入功能(除其他外)。尽管我的书中提到了“懒惰删除”和其他懒惰行为,但它从未指明“懒惰”究竟意味着什么。

简而言之: 插入/删除功能和LAZY插入/删除功能之间有什么区别?

1 个答案:

答案 0 :(得分:2)

“延迟删除”通常意味着您标记已删除的内容而不是直接删除它,并修改其他操作以假装标记的项目不存在。

例如,在优先级队列的情况下,您可以跳过出列过程中删除的项目,而不是从中间主动删除它们,这更难。

类似地,“延迟插入”可能会将元素添加到输入队列中,这是一个恒定时间操作。通常,插入优先级队列需要O(log n)时间。尝试出队时,输入队列将刷新到优先级队列中。这将导致在插入操作之前卸载插入操作的成本。

基本上“懒惰”意味着在需要结果之前不进行操作。