首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何创建具有运行时间限制的数据结构

如何创建具有运行时间限制的数据结构
EN

Stack Overflow用户
提问于 2010-09-13 18:11:43
回答 1查看 624关注 0票数 2

我需要在O(log(n))中实现一个支持插入、删除和搜索的数据结构,并在O(1)中提取一个特殊的对象。我的数据结构需要保存按ID排序的车辆,并且每个车辆都有一个字段,表示距离下一次服务的时间。我需要提取O(1)中下一个需要服务的车辆。欢迎所有的建议。

我知道我需要两个不同的数据结构,我想让1个set和1个优先级队列都按其他参数排序,但同时持有相同指针的副本。我的问题是,当我试图从"set“结构中删除时,我停留在另一个数据结构(优先级队列)上的垃圾。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-13 18:36:56

哈希表将比O(log(n))更好地支持插入、删除和搜索。这是假设当您增长表时,您永远不需要重新散列所有内容。困难的部分是在O(1)时间内定位“下一辆”车辆。

根据实现的不同,对数将在O(1)和O( min heap (N))(分期)之间插入,找到最小项的时间为O(1)。从堆中删除一项是O(log(n))操作,但在堆中查找任意项的操作多于O(log(n))。

如果我要实现这一点,我将使用两个独立的数据结构:一个哈希表和一个最小堆。原因是哈希表提供了非常快速的插入、删除和查找,而堆提供了基于服务时间的排序。唯一不能满足启动要求的地方是删除车辆,因为这需要在堆中搜索任意项。

实际上,可以将这两种数据结构组合在一起,使您的哈希表存储堆节点对象(具有对实际数据的引用),而不是实际的数据对象。只要堆节点知道它在堆中的位置(即具有父指针以及左子指针和右子指针),就可以使用哈希表查找节点并将该节点从堆中删除。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3703170

复制
相关文章
使用WiX制作具有时间限制的安装包
WiX是Windows Installer XML的简称,它是用于制作Windows安装包的工具集。它支持命令行环境,开发者可以及将它集成到他们的编译过程中创建MSI和MSM安装包。 更多信息可以参考
葡萄城控件
2018/01/10
1.5K0
使用WiX制作具有时间限制的安装包
Linux运行有时间限制的命令—timeout命令
timeout是用来控制程序运行的时间,运行指定的命令。如果在指定时间后仍在运行,则杀死该进程。使用timeout命令可以让程序在指定的时间内仍然运行则强制退出。
胡齐
2020/02/25
13.9K0
Java 中如何限制方法的返回时间
可以使用 JDK 中的 ExecutorService 方法来对调用的方法进行处理。
HoneyMoose
2023/02/10
3.1K0
Java 中如何限制方法的返回时间
长时间运行后无法创建session的问题
Jira Ticket: https://jira.mongodb.org/browse/SERVER-42827
MongoDB中文社区
2020/07/22
1.9K0
如何使用PowerShx摆脱软件限制运行PowerShell
PowerShx是一款功能强大的PowerShell软件,在该工具的帮助下,广大研究人员可以在目标主机上摆脱任何软件的限制从而执行PowerShell代码。
FB客服
2021/11/23
1.6K0
日期时间限制的选择
对于elementUI一些拿来即用的组件,虽然是可以直接用,但仍需要针对自己的业务做一些特殊处理
itclanCoder
2021/11/18
3K0
如何创建一个不受长度限制的数组?
哈哈,如果你非要这样提问不可,我也不好说什么。真有不少新手提出这样的问题,我还是要说,这是个好问题,毕竟程序员是最具有创新精神的群体。
高一峰
2020/09/22
4.8K0
如何创建一个不受长度限制的数组?
如何创建并运行Java线程
Java线程类也是一个object类,它的实例都继承自java.lang.Thread或其子类。 可以用如下方式用java中创建一个线程:
Java团长
2018/08/06
5610
Layui 时间控件限制[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142445.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.9K0
关于MySQL function创建的限制
如果在function创建的时候包含PREPARE,EXECUTE, DEALLOCATE,那么这些都会被判断为包含DYNAMIC SQL,这些语法都会被拒绝。因为使用存储过程的目的是防止使用严格类型的数据进行SQL注入。这个例子里面的sql语句是固定的,已经脱离了prepare的使用意义,因此不需要创建这种场景。。
GreatSQL社区
2022/02/28
1K0
datetimepicker限制最大时间
$( ‘#datetimepicker3’). datetimepicker({
全栈程序员站长
2021/04/07
1.1K0
如何缩短Vivado运行时间
在Vivado Implementation阶段,有时是有必要分析一下什么原因导致运行时间(runtime)过长,从而找到一些方法来缩短运行时间。
Lauren的FPGA
2019/10/30
4.7K0
JobObject实现对进程进行内存和运行时间限制
最近在研究oj系统,查过网上的解决方案,大致分为两种: 一种是基于Java虚拟机的解决方案,让编译好的程序运行在java虚拟机里面,通过对虚拟机的限制保障时空有效性和系统安全性; 第二种是基于linux系统的方案,通过内置的系统函数设置程序可用资源以及通过限制用户运行此程序以保障系统安全性. 实际情况是希望在windows下实现oj系统,而且对jvm无爱,遂研究下通过windows的一些内核机制实现此目的. 根据上面的第二种解决方案后查阅MSDN及相关资料后得知windows下没有设置程序可用资源的函数,
码农二狗
2018/06/29
1.9K0
如何通过 docker 创建并运行 mysql
安装地址:https://www.runoob.com/docker/macos-docker-install.html
特特
2022/08/14
2.3K0
限制Docker容器运行资源
Docker容器在默认情况下会使用宿主机的所有CPU和内存资源,为了明确限制每一个Docker容器的运行资源,需按如下操作。
编程随笔
2021/05/07
2K0
网站如何加入显示运行时间
世间万物皆苦,你明目张胆的偏爱就是救赎。 网站加入运行时间精确到秒 把下面代码加到你需要的地方,很简单的,我还是比较喜欢这样的个性代码的 <span id="runtime_span"></span> <script type="text/javascript"> function show_runtime() {window.setTimeout("show_runtime()",1000); X=new Date("10/16/2017 5:22:00"); Y=new Date(); T=(Y.
白黎
2023/03/16
7430
网站如何加入显示运行时间
java如何计算程序运行时间
long  startTime = System.currentTimeMillis();    //获取开始时间
用户7886150
2021/04/28
3.2K0
点击加载更多

相似问题

具有常量时间操作的数据结构

31

如何设置运行gams的时间限制

15

如何限制公式可以运行的时间?

13

限制正在创建的数据结构的大小

21

数据结构-运行时间

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文