需要知道是否有方法可以在不使用两个循环的情况下计算数组中项目的频率。这不知道数组的大小。如果我知道数组的大小,我可以使用不带循环的开关。但我需要更多才多艺。我认为修改quicksort可能会带来更好的结果。数组中项目的计数频率 - 没有两个for循环
Array[n];
TwoDArray[n][2];
第一个循环将在Array []上进行,而第二个循环将查找元素并将其增加到二维数组中。
max = 0;
for(int i=0;i<Array.length;i++){
found= false;
for(int j=0;j<TwoDArray[max].length;j++){
if(TwoDArray[j][0]==Array[i]){
TwoDArray[j][1]+=;
found = true;
break;
}
}
if(found==false){
TwoDArray[max+1][0]=Array[i];
TwoDArray[max+1][1]=1;
max+=;
}
如果您可以评论或提供更好的解决方案将是非常有益的。
一些语言提供更高的结构来实现这一点,如果你能使用一个哈希表,你将不再需要2路 – DevZer0