最近自走棋游戏挺有意思的,想自己模拟个自走棋游戏的后端,大概就是需要不同棋子按照时间顺序依次执行各自的任务,然后各自的任务执行结果又会影响任务队列本身这样。
想了想,大概需要维护一个类似于时间循环的东西,需求大概是:
不知道该用啥数据结构,有没有大佬提提意见。如果用各种树的话,感觉平衡树不太适合任务队列?任务队列需要频繁删除栈底,用树感觉很亏。如果单纯是一个数组然后用类似快排的思路实现插入和修改(先查找再插入),感觉也是效率很低。一时想不到啥合适的,学艺不精了属于是
1
pengdachxx 239 天前
修改不好搞,可以研究下延时队列或者优先队列
|
2
Maboroshii 239 天前
维护的任务数量不多,每次插入用冒泡排序都可以实现需求。 (认真点,谷歌搜时间轮)
|
3
LeeReamond OP @Maboroshii 确实不多,自走棋游戏首先都会限制棋子上限,任务的数量级靠硬怼也能搞。只是我是想后面有没有可能跑大量测试和数据分析,所以性能上想尽量基线做高点
|
4
mezi04 239 天前
Java 有 DelayQueue ,不知道 op 用的啥开发语言
|
5
sketcherly 239 天前 via Android
b+tree ?没细琢磨,感觉上 叶子节点可以作为作为队列,本身又是树适合写操作
|
6
tiandishi 239 天前
双向链表扩展一下:
跳表 |
7
xichuhanguguan 239 天前
时间轮算法,可以找找你使用语言的包试试看
|
8
MoYi123 239 天前
带懒删除的 fib heap
|