首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >实现高scrores表的最佳数据结构是什么

实现高scrores表的最佳数据结构是什么
EN

Stack Overflow用户
提问于 2013-12-20 04:44:30
回答 2查看 209关注 0票数 0

我正在尝试实现一个游戏的高分数表。我认为最好的解决方案是创建一个链表,然后在表中插入新的分数,然后遍历列表直到该点,并将所有排名下移一个。有没有更好的替代方案?

EN

回答 2

Stack Overflow用户

发布于 2013-12-20 04:49:33

我认为最好的解决方案是使用Priority Queue (通常使用heap实现),这样就可以简单地添加新分数,数据结构将为您排序。

票数 2
EN

Stack Overflow用户

发布于 2013-12-21 10:32:01

我想说的是,一个平衡的二进制搜索树(Red-Black/AVL)与手指(指向树中的最大值)将是非常有效的。您可以在O(1)中获得最高分,并且通过获取前置节点(这在BVS中很简单),您可以获得任意多的高分。

如果你有一堆分数,并且希望能够挑选出x排名前几的分数,这将是非常有用的。如果你想要有一个获得分数并返回其排名的函数,或者想要询问一般的范围查询(即“给我从10到20的排名”),你需要稍微修改一下结构(保持每个节点中子树的大小并使用该信息)。

您的解决方案相当慢,每次插入和查找都需要O(n)次操作。堆在寻找最高分数方面要快得多,但是,它只给出最高分数-你必须手动搜索最高的x分数;而且,一般的范围查询不可能有效地完成。

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

https://stackoverflow.com/questions/20696447

复制
相关文章
在 Hibernate Search 5.5 中对搜索结果进行排序
“秩序,秩序”- 有时不仅仅下议院尊敬的议员需要被喊着让排序,而且在特殊情况下 Hibernate 的查询结果也需要排序。
知忆
2021/06/08
2.9K0
如何有效进行回顾会议(中)?
组织开展运行良好的回顾会议能帮助团队做出改进和进行下一步的行动,那么到底应该如何进行有效的回顾呢?以下是一些需要重点关注的事情,掌握以下要素不仅可以帮助团队提高效率、增加乐趣,逐步减小或消除人们对于Scrum的误解。
敏捷开发
2022/08/12
5740
如何有效进行回顾会议(中)?
浅谈在ASP.NET中数据有效性校验的方法
作为一名程序员,一定要对自己编写的程序的健壮性负责,因此数据的校验无论在商业逻辑还是系统实现都是必不可少的部分。
Java架构师必看
2021/03/22
9500
在PowerBI的切片器中搜索
在制作PowerBI报告时,一般来说,我们都会创建一些切片器。为了节省空间,一般情况下尤其是类目比较多的时候,大多采用下拉式的:
陈学谦
2020/06/18
12.4K0
DNN在搜索场景中的应用
DNN在搜索场景中的应用潜力,也许会比你想象的更大。 --《阿里技术》 1.背 景 搜索排序的特征在于大量的使用了LR,GBDT,SVM等模型及其变种。主要在特征工程,建模的场景,目标采样等方面做了很细致的工作。但这些模型的瓶颈也非常的明显,尽管现在PS版本LR可以支持到50亿特征规模,400亿的样本,但这看起来依然是不太够的,现在上亿的item数据,如果直接使用id特征的话,和任意特征进行组合后,都会超出LR模型的极限规模,对于GBDT,SVM等模型的能力则更弱,而我们一直在思考怎么可以突破这种模型的限制
昱良
2018/06/25
3.7K0
检验数据库中是否有特定记录的最简单方法
        String sqlconn = "Data Source=wei//SQLEXPRESS;Initial Catalog=HISDB;Integrated Security=True";         SqlConnection weida = new SqlConnection(sqlconn);         weida.Open();         //*********************         string sql = "SELECT tkdh FROM tkxx WHERE checked = 'True' AND tkdh='" + ckdh + "'";         SqlCommand check1 = new SqlCommand(sql, weida);
风柏杨4711
2021/03/15
1.1K0
idea在类中搜索方法的快捷键_idea控制台搜索快捷键
Ctrl+Alt+L 格式e69da5e887aa62616964757a686964616f31333365646234化代码
全栈程序员站长
2022/11/07
1.5K0
【犀牛鸟论道】深度哈希方法及其在移动视觉搜索中的应用
1. 简介 移动视觉搜索技术是多媒体搜索领域中一个前沿的研究课题。近年来,移动设备的飞速发展,改变了互联网上图像和视频等视觉内容的产生,以及人们检索和观看的方式。移动设备的便携性和无处不在的网络接入能力使其逐渐成为主要的互联网图像和视频内容的访问和查询入口。而移动设备上丰富的传感器原件,也使得移动视觉搜索的过程更加自然、有效——用户可以直接通过拍摄图像和视频进行搜索。因此,移动视觉搜索具有巨大的市场需求和应用前景。但是,不同于传统的桌面搜索,移动视觉搜索主要面临如下挑战:1)查询图像\视频受拍摄环境干扰严重
腾讯高校合作
2018/03/21
1.2K0
【犀牛鸟论道】深度哈希方法及其在移动视觉搜索中的应用
在Solr中搜索人名的小建议
搜索人名是我们在许多应用程序中经常用到的功能。比如对书店来说,按作者名检索的功能就相当重要。虽然很难起一个完美的名字,但是我们可以使用Solr的一些功能,使绝大多数英文名搜索达到绝佳的效果。
让让子Dorothy
2018/05/18
2.7K0
在Express中对MongoDB数据库进行增删改查
这两天跟着B站的Johnny老师学习NodeJs+Express+MongoDB相关的知识点,前后跟着做了1小时搞定NodeJs(Express)的用户注册、登录和授权、Element UI + NodeJs(Express)全栈开发后台管理界面、Express-9-MongoDB删除产品和DELETE请求等系列视频。本篇博客主要是学习在Express中如何对MongoDB数据库进行增删改查。
ccf19881030
2020/02/23
5.3K0
[MongoDB] 使用PHP在MongoDB中搜索的实现
条件操作符用于比较两个表达式并从mongoDB集合中获取数据。 MongoDB中条件操作符有: (>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gte (<= ) 小于等于 - $lte MongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式,使用PCRE (Perl Compatible Regular Expression) 作为正则表达式语言。 MongoDB OR 条件语句使用了关键字 $or
唯一Chat
2020/02/25
5.2K0
【AutoML】优化方法可以进行自动搜索学习吗?
大家好,欢迎来到专栏《AutoML》,在这个专栏中我们会讲述AutoML技术在深度学习中的应用,这一期讲述在优化方法选择中的应用。
用户1508658
2019/11/06
5310
【AutoML】优化方法可以进行自动搜索学习吗?
IDA 中的大规模路径搜索方法
问题似乎很简单,IDA 工具本身就提供了查看调用链路的功能,懂得 IDAPython 的也可以很容易写出下面的程序:
evilpan
2023/02/12
6020
在VC6.0中连接mysql数据库的方法实例
(本文年代久远,请谨慎阅读)最近用JAVA写程序,在连接数据库并操作上感觉还是较其他语言简单多了,在这方面C/C++就显得有点繁杂,不过也并非难事。 首先就是要清除mysql提供的关于C的API,连接:http://dev.mysql.com/doc/refman/5.1/zh/apis.html
ZONGLYN
2019/08/08
2.5K0
如何进行有效的探索测试?
对于开发人员而言,测试是产品的生命周期中非常重要的一环。在团队成员都明白测试的重要性的情况下,开发人员往往不会太过重视,觉得自己不需要花精力去测试,也不会花时间去编写代码,这样的情况下,开发人员往往会忽视测试。然而,随着时间的推移,如果开发人员不了解自己目前做的是什么工作,就会觉得做不到或者做得很糟糕。因此,开发人员会更加重视探索测试。那么如何进行探索测试呢?这篇文章就为大家介绍一下探索测试是什么。
测试开发囤货
2022/11/07
6970
什么特征进行交互才是有效的?
本文主要针对推荐系统中的特征交互而提出的相关方法,如果将所有可能的特征都进行交互,那消耗是很大的,本文提出HIRS用于直接生成有益特征交互。生成的特征交互的数量可以指定为远小于所有可能的交互的数量,因此模型运行时间更短。
秋枫学习笔记
2022/09/19
8530
WordPress 技巧:在特定日志类型中进行搜索
如果你的 WordPress 使用了多个日志类型(Post Type),并且只想在搜索结果中只显示特定的日志类型,可以在 functions.php 文件中添加如下代码。
Denis
2023/04/15
2610
如何进行有效沟通
说话可以说是人类成为高等动物的最关键技能了,说话的目的是为了沟通,沟通是协作的前提,好的沟通可以让团队协作事半功倍,不好的沟通还不如不沟通。
sylan215
2020/03/02
4310
点击加载更多

相似问题

在结果集中进行有效搜索的方法

25

在NSDictionary的NSDictionary中进行搜索的有效方法

32

在Python中进行大量搜索/替换的有效方法?

43

在MySQL中进行全文搜索的最有效方法

40

在字典列表中进行搜索的最有效方法

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文