Tri à bulle
function triAbulles(tab){ let tmp = 0 // variable temporaire créée pour permettre la permutation for (let i = 0; i < tab.length-1; i++){ // Boucle entre le premier et l'avant dernier élément for (let j = i+1; j < tab.length; j++){ // Boucle entre le second élément et le dernier élément // Première comparaison = entre le premier et second élément // Dernière comparaison = entre l'avant dernier et le dernier élément if (tab[i] > tab[j]){ // "<" = par ordre décroissant tmp = tab[i] tab[i] = tab[j] tab[j] = tmp } } } return tab // retourne le tableau trié } function trier(){ // appelée lors du clic let tab_old = document.getElementById("tab_old").value.split(",") for (let i=0; i<tab_old.length; i++){ // convertir toute string en nombre (entier) tab_old[i] = parseInt(tab_old[i],10) } let tab_new = triAbulles(tab_old) document.getElementById("tab_new").value = tab_new.toString() }
Le but est de tester le tri à bulle (et non de tester ce qui est dans
le champ)
Tri de clés
Chaque article a un identifiant et un nom (bic, crayon, gomme, ...).
La liste est un ensemble de clé:valeur, séparé par une virgule
Code JS
function triAbulles2(tab,tab2){ let tmp = 0, tmp2 = "" for (let i = 0; i < tab.length-1; i++){ for (let j = i+1; j < tab.length; j++){ if (tab[i] > tab[j]){ // "<" = par ordre décroissant tmp = tab[i]; tmp2 = tab2[i] tab[i] = tab[j]; tab2[i] = tab2[j] tab[j] = tmp; tab2[j] = tmp2 } } } tabx = [tab,tab2] return tabx // retourne un tableau (composé de deux tableaux) } function trier2(){ let tabKeys = [], tabValues = [], tab = [] let tab_old2 = document.getElementById("tab_old2").value.split(",") for (let i=0; i < tab_old2.length; i++){ tab = (tab_old2[i]).split(":") tabKeys.push( parseInt(tab[0],10) ); tabValues.push(tab[1]); } let tabx = triAbulles2(tabKeys,tabValues) let msg = "" for (let i=0; i < tabx[0].length; i++){ msg += tabx[0][i]+":"+tabx[1][i]+"," } msg = msg.substr(0, msg.length-1) // enlève le dernier caractère de msg document.getElementById("tab_new2").value = msg }