Problème algorithme dichotomique
Résolu/Fermé
a.b
-
Modifié le 25 janv. 2021 à 19:55
jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 - 25 janv. 2021 à 20:40
jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 - 25 janv. 2021 à 20:40
A voir également:
- Problème algorithme dichotomique
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Recherche dichotomique c ✓ - Forum C
- Algorithme qui calcule le carré d'un nombre - Forum Algorithmes / Méthodes
- Code ascii algorithme - Guide
1 réponse
jordane45
Messages postés
38424
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2025
4 734
25 janv. 2021 à 20:40
25 janv. 2021 à 20:40
Bonjour,
Pour faire une recherche par dichotomie.. il faudrait déjà que ton tableau soit trié et ne contienne pas de valeurs en doublons.
En plus, dans ton code actuel, tu ne sorts jamais... même si tu trouves le bon résultat...
Donc, ben.. tu fais une boucle infinie
Essaye ça
Pour faire une recherche par dichotomie.. il faudrait déjà que ton tableau soit trié et ne contienne pas de valeurs en doublons.
En plus, dans ton code actuel, tu ne sorts jamais... même si tu trouves le bon résultat...
Donc, ben.. tu fais une boucle infinie
Essaye ça
let tab = [1,2,3,4,5,6,7,8]; function findM(tbl) { return Math.floor(tbl.length / 2) } var m = 0; var milieu = findM(tab); function search(tbl,x,m) { console.log(tbl,x,m); let tm = typeof(tbl[m])!='undefined' ? tbl[m] : null; if(!tm) return false; if(tm == x){ console.log("Valeur trouvée à l'indice ",m); return true; }else if(x < tm) { let leftTab = tbl.slice(0,m); let ml = findM(leftTab); search(leftTab,x,ml); } else { let rightTab = tbl.slice(m,tbl.length); let mr = findM(rightTab); search(rightTab,x,mr); } } console.log(search(tab,2,milieu));