Java:插入/替换到特定大小的排序数组中
因此,我正在遍历一个二进制树,节点包含字符串,以及字符串在读取文件时是否多次出现。我只查找在读取文件时出现最多的前10个单词,所以本质上我只是比较一个int值
我的问题是,如果新节点的计数值更大,我试图找到一种有效的方法来比较和插入新节点。这么说 我有一棵树和
5
/ \
3 10
/ \
115
假设数组大小仅为3。我从1开始,因为数组在5之前是空的,所以它在命中5之后看起来会是空的
[1]、[3]、[5]
当我达到10时,它比一切都大,但我想保持它的排序,所以我需要将3换成1,5换成3,10换成5。我想知道是否有一个更有效的方法来做到这一点,然后在每一个更高的数字后转移。它读取的文本文件超过10k+字,所以我希望它尽可能快
如果一个不同的数据结构会更好,请让我知道。我想使用队列或linkedlist,但我认为数组浪费的空间更少,因为它的大小只有10。我是一名学生,所以也要温柔
# 1 楼答案
嗯,你可以把它放入一个未排序的ArrayList并运行排序:
这是我的建议
# 2 楼答案
一种方法是使用两种数据结构。建议使用映射和最小堆的方法如下: