我有一个任务,我需要找到一个数组模式。这意味着我正在寻找最频繁的整数。我已经有点完成了,但任务还说,如果有两种模式是相同的,我应该返回最小的整数例如{1,1,1,2,2,2}应该给1(就像在我的文件中我使用该阵列,它给出了2)java编程和查找数组模式
public class theMode
{
public theMode()
{
int[] testingArray = new int[] {1,1,1,2,2,2,4};
int mode=findMode(testingArray);
System.out.println(mode);
}
public int findMode(int[] testingArray)
{
int modeWeAreLookingFor = 0;
int frequencyOfMode = 0;
for (int i = 0; i < testingArray.length; i++)
{
int currentIndexOfArray = testingArray[i];
int frequencyOfEachInArray = howMany(testingArray,currentIndexOfArray);
if (frequencyOfEachInArray > frequencyOfMode)
{
modeWeAreLookingFor = currentIndexOfArray;
frequencyOfMode = modeWeAreLookingFor;
}
}
return modeWeAreLookingFor;
}
public int howMany(int[] testingArray, int c)
{
int howManyOfThisInt=0;
for(int i=0; i < testingArray.length;i++)
{
if(testingArray[i]==c){
howManyOfThisInt++;
}
}
return howManyOfThisInt;
}
public static void main(String[] args)
{
new theMode();
}
}
当你看到我的算法返回最后找到的模式或我应该如何解释它。
是的,我解决了它与我的老师一些帮助。在修改过程中有什么帮助是在所有变量的for循环中打印的,所以我们可以跟进。完整的代码将作为新的答复,感谢您的帮助,虽然它可能会帮助我。 – 2012-02-27 15:20:06