本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

数据结构设计设计

发布于2025-01-18 21:47     阅读(107)     评论(0)     点赞(26)     收藏(1)


以下是我曾做过几次的场景。

计算段落中单词的频率。

我创建了一个 Map 并存储计数。因此我的 Map 包含

  <Today, 10>
  <the, 123>
  <hello,1>
  <dont, 20>

现在出现了另一种情况,识别计数为 100 或 30 的单词

我创建列表地图或地图

<10, [today,...]>
   <123,[the,...]>

或 <10, 2> <123,1> 基本上我有两张地图来处理所有工作.. 这工作正常,并且任何一张地图上的更新,另一张地图也必须更新。

检索和插入时间几乎为 O(1)。但这并不是内存效率很高的。

还可以采用哪些其他方法?


解决方案


获得 (单词、频率) 对后,您可以创建一个数组,按频率排序,然后进行二分搜索。这会减慢对 O(log n) 的访问速度,但如果这是限制,您可以使用大约一半的内存。

除此之外,我没有看到任何比你现在所做的事情更好的事情。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/695233/29d019010fe012eedd2a/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)