Algorithme pour le mélange des listes

 

L'algorithme "Shuffle Array" ci-dessous est un algorithme fréquemment utilisé qui permet de mettre en désordre les éléments d'une liste ou array.

function shuffleArray (array) { 
for (var i = array.length - 1; i > 1; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}

Exemple : on part de liste=[A,B,C,D,E,F,G,H,I,J] ; on écrit : liste=shuffleArray(liste).
Observez le mécanisme mis en place par l'algorithme en appuyant sur le bouton ci-dessous:




L'algorithme consiste à prendre au hasard un élément du tableau et à faire une permutation avec le dernier élément du tableau, et on recommence le processus sur un tableau de plus en plus petit grâce à i-- à chaque tour de boucle.
On notera que pour faire ces substitutions, il est nécessaire de passer par une variable temporaire appelée ici temp.

Application :

Soit la liste : var listedepays=[["France",france],["Pologne",pologne],["Portugal",portugal]] constituée de noms de pays et leur contour sous la forme de liste à deux dimensions.

En utilisant la page de base ci-dessous , écrire le programme qui permet de retourner de façon aléatoire dans la console un nouveau nom de pays et son contour à chaque rafraîchissement du navigateur.

<html>
<head>
<meta charset="utf-8" />
<title>Algorithme de mélange de liste</title>
</head>
<body>
<div>
<script type="text/javascript">
</script>
</body>
</html>