gpt4 book ai didi

java - 如何获取最频繁的项目

转载 作者:行者123 更新时间:2023-12-01 16:01:12 24 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序有一个包含数字行的大数组,

transNum[20000][200]//this is the 2d array containing the numbers and always keep track of the line numbers

我正在使用嵌套循环来查找最频繁的项目。这是

for(int i=0/*,lineitems=0*/;i<lineCounter;i++)
{
for(int j=0,shows=1;j<lineitem1[i];j++)
{
for(int t=i+1;t<lineCounter;t++)
{
for(int s=0;s<lineitem1[t];s++)
{
if(transNum[i][j]==transNum[t][s])
shows++;
}
}

if(shows/lineCounter>=0.2)
{

freItem[i][lineitem2[i]]=transNum[i][j];
lineitem2[i]++;
}
}

}

当我使用像 test[200][200] 这样的小输入数组进行测试时,这个循环工作正常并且计算时间可以接受,但是当我尝试处理包含 12000 行的数组时,计算时间太长,所以我在想是否有其他方法来计算频繁项而不是使用这个循环。我刚刚在10688行上进行了测试,得到所有频繁项的时间是825805ms,这太昂贵了。

最佳答案

请记住,这最多是一个 O(n^2) 算法,而且可能会更糟。这意味着操作数量与项目数量的平方成正比。经过一定数量的行后,性能会迅速下降,除了改进算法之外,您无能为力。

关于java - 如何获取最频繁的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3847079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com