Recherche binaire
Fermé
lyla12
Messages postés
3
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
14 décembre 2018
-
Modifié le 13 déc. 2018 à 07:41
lyla12 Messages postés 3 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 14 décembre 2018 - 14 déc. 2018 à 00:58
lyla12 Messages postés 3 Date d'inscription jeudi 13 décembre 2018 Statut Membre Dernière intervention 14 décembre 2018 - 14 déc. 2018 à 00:58
A voir également:
- Recherche binaire
- Recherche musique - Guide
- Recherche par image - Guide
- Codage binaire - Guide
- Canal tf1 tnt recherche manuelle - Forum TNT
- Alphabet binaire ✓ - Forum Programmation
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
13 déc. 2018 à 07:49
13 déc. 2018 à 07:49
Bonjour,
Il manque des éléments pour bien comprendre ce que tu fais, par exemple les types de
Remarque : une recherche dichotomique suppose que les données soient triées, mais pour l'instant j'ai du mal à comprendre ta structure de données pour l'améliorer.
Il manque des éléments pour bien comprendre ce que tu fais, par exemple les types de
motset
toet un exemple de leurs valeurs parce que j'avoue que le
i = to.size();me laisse perplexe...
Remarque : une recherche dichotomique suppose que les données soient triées, mais pour l'instant j'ai du mal à comprendre ta structure de données pour l'améliorer.
Modifié le 13 déc. 2018 à 22:29
public static long nbrMots(String mot) { long compt = 0; for(ArrayList<String>words : mots){ for(int i=0; i<words.size();i++) { if (mot.equalsIgnoreCase(words.get(i))) { ++compt; i = words.size(); } } } return compt; }13 déc. 2018 à 22:49
Remarque : tu ne pourras pas avoir un nombre d'éléments en long, la taille d'une Collection est toujours un int.
private static List<String> words = ... public static int nbrMots(String mot) { int compt = 0; for (String word : words) if (mot.equalsIgnoreCase(word)) compt++; return compt; }Quant à optimiser ton calcul, tu peux faire une Map comme ceci :
private static List<String> words = ... private static Map<String, Integer> nbWordsByLowerCaseWord = words.parallelStream() .collect(Collectors.toMap(w -> w.toLowerCase(), w -> 1, (n1, n2) -> n1 + n2)); public static int nbrMots(String mot) { return nbWordsByLowerCaseWord.get(mot.toLowerCase()); }14 déc. 2018 à 00:58