Bonjour,

Je tente d'impl�menter un algorithme de tri fusion en Javascript dans "l'ardoise" de Firefox Dev Edition. J'ai un message d'erreur "out of memory". Je pense que j'ai une boucle infinie, mais je ne vois pas o�.
Voici le code:

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function triFusion(tab) {
  var rep = [];
  var tabL = tab.length;
  if(tabL < 2) {
    console.log("Tableau déjà trié, il n'y a rien à faire!" +tab);
    return tab;
  } else {
    var q = Math.ceil(tabL / 2);
    var left = triFusion(tab.slice(0,q));
    var right = triFusion(tab.slice(q+1, tabL));
    return fusion(left, right); 
  }
}
 
function fusion(tabLeft, tabRight) {
  var ans = [];
  var tabLeftL = tabLeft.length;
  var tabRightL = tabRight.length;
  var cpteurL = 0;
  var cpteurR = 0;
 
  while((cpteurL < tabLeftL) && (cpteurR < tabRightL)) {
    if(tabLeft[cpteurL] >= tabRight[cpteurR]) {
      ans.push(tabLeft[cpteurL]);
      cpteurL += 1;
 
    } else {
      ans.push(tabRight[cpteurR]);
      cpteurR +=1;
 
    }
  } 
  for(var i = cpteurL; i < tabLeftL; i++) {
    ans.push(tabLeft[i]);
  }
 
  for(var j = cpteurR; j < tabRightL; j++) {
    ans.push(tabRight[j]);
  }
 
  return ans;
}
 
var tableau = [9, 0, 1, 9, 3, 5, 4, 7, 2, 6, 4, 1, 0, 3, 9, 8, 7, 5, 1, 3, 9, 8, 5, 3, 0, 1, 3];
triFusion(tableau);
Merci pour votre aide.