程序员对优先级队列实现的默认选择是什么?
What is the programmer's default selection for implementation of priority queue?
是吗
- 堆
- 未排序的列表
- 排序列表
- 链接列表
- 还有其他数据结构吗
在实现优先级队列时,其中哪一个是程序员的默认/自然选择,该特定选择相对于另一个的偏好原因是什么?
我建议实现Ladder Queue,它是一个O(1)
优先级队列。
形式化定义:梯形队列:用于大规模离散事件模拟的O(1)优先级队列结构
我会说堆是为了速度。
列表具有线性访问时间,而堆O(log(n))访问是可能的(插入/删除),而列表允许O(1)中的删除,但插入具有O(n)
偶尔我需要一个优先级队列,但只有一小部分优先级,所以我可以使用一组按优先级索引的"普通"FIFO队列。pop()方法从优先级最高的一端迭代数组,寻找非零计数。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 如何使用默认参数等选择模板专业化
- 具有默认模板参数的多态类的模板推导失败
- Switch 语句(字符串)一直选择默认值,除非其为零
- C++ 带有默认参数的结构,可选择在构造函数中更改
- cv::cuda::Stream选择线程默认流
- 为什么QTableView扩展选择忽略了我的默认选择行
- 选择默认的 gcc/g++ 编译器
- 执行默认值:在C 中的开关案例选择语句中
- Qt如何选择默认样式?
- 是否在重载选择期间未考虑默认参数的转换
- C++选择'wrong'默认参数的重载方法
- MFC中的默认选择路径
- 选择一个方法作为(默认)模板参数
- 如何使用'getaddrinfo'为所有接口选择默认空闲端口?
- 我可以在默认初始化和值初始化之间进行选择,也可以选择数组的全部或部分
- 程序员对优先级队列实现的默认选择是什么?
- QListView的默认选择模型的所有权
- QT:在选择文件的目录上启动默认的资源管理器
- 如何在“文件夹选择”对话框中将“我的音乐”作为默认选择路径