Trouver le mode le plus fréquent de la valeur dans un tableau) à l'aide d'une simple boucle for?
Comment puis-je trouver le mode le plus fréquent de la valeur dans un tableau) à l'aide d'une simple boucle for?
Le code se compile avec une mauvaise sortie.
Voici ce que j'ai:
public static void mode(double [] arr)
{
double mode=arr[0];
for(int i = 1; i<arr.length; i++)
{
if(mode==arr[i])
{
mode++;
}
}
return mode;
}
Vous devez vous connecter pour publier un commentaire.
J'ai d'abord trier le tableau par ordre puis-je compter les occurrences d'un nombre. Pas de hashmaps seulement pour la boucle et si les déclarations.
Mon code:
-Il suffit d'utiliser une table de hachage qui contient les valeurs d'index de tableau que les clés et leur occurrence les nombres comme des valeurs.
-Mise à jour de la table de hachage comme vous traversez la boucle for en vérifiant si l'indice actuel existe déjà dans la table de hachage. SI C'est le cas alors trouver que le double de la valeur de hachage de la carte et de voir combien de fois elle a déjà eu lieu et de la remettre dans la table de hachage avec une occurrence de plus.
-Je l'ai fait en Java car c'est ce qu'on dirait que vous êtes en utilisant. Ce qui est bien aussi c'est que le temps de la complexité est O(n) qui est le meilleur que vous pourriez éventuellement obtenir pour ce type de scénario parce que vous avez à visiter chaque élément au moins une fois.
-Donc, si vous avez un tableau comme celui de double: { 1,2,3,1,1,1,5,5,5,7,7,7,7,7,7,7,7,7}
Ensuite, la valeur de hachage de la carte va ressembler à quelque chose comme ceci à la fin: { 1->4, 2->1, 3->1, 5->3, 7->9 }
Ce qui signifie que "1 eu lieu 4 fois, 2 eu lieu 1 fois .... 7 s'est produite 9 fois" etc.
Ce code est une autre manière de ne pas utiliser hashmaps. Cette méthode, créée en java, prend un tableau en paramètre et crée un autre tableau appelé "numberCount" dans la méthode. Ce tableau "numberCount" sera mis son index de la valeur dans le tableau. L'indice de la "numberCount"qui contient la valeur dans le tableau passé en ajoute 1 à la valeur de "numberCount" ("++numberCount[tableau[i]]"), puis passera à la prochaine valeur dans le tableau (répéter jusqu'à la fin du tableau). Puis crée un autre pour la boucle pour parcourir chaque valeur de la matrice dans "numberCount", qui jamais indice de valeur est la plus élevée/count seront stockées et de retour que "max". Cette méthode devra subir quelques changements difficiles à utiliser un double tableau. mais semble fonctionner à merveille avec un tableau int.
Vous devriez vérifier le nombre d'événements de tous les éléments de votre tableau. Vous pouvez le faire en comparant chaque élément du tableau avec elle-même et d'autres personnes via intérieur 2 boucles for.
Rappelez-vous, si le tableau n'est pas trié et contient plus de 1 modal de la valeur (donc de répéter le nombre d'événements) ce sera le retour de la première. Il peut-être sage de commander la matrice d'abord par Tableaux.sort(array) de sorte que vous pouvez choisir la plus petite ou la plus grande valeur modale.