需要知道是否有方法可以在不使用兩個循環的情況下計算數組中項目的頻率。這不知道數組的大小。如果我知道數組的大小,我可以使用不帶循環的開關。但我需要更多才多藝。我認爲修改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