Problème algorithme dichotomique
Résolu
a.b
-
jordane45 Messages postés 38480 Date d'inscription Statut Modérateur Dernière intervention - 25 janv. 2021 à 20:40
jordane45 Messages postés 38480 Date d'inscription Statut Modérateur Dernière intervention - 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
- Algorithme ajout rapide snapchat - Forum Snapchat
- Algorithme euromillion excel gratuit ✓ - Forum VB / VBA
- Ajout rapide snap - Forum Snapchat
1 réponse
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));