Bubble Sort / Tri à Bulles 1. Principe
Le principe est simple : c'est de la comparaison élément par élément en réduisant à chaque fois l'intervalle de tri. C'est à dire qu'au début on parcourt tout le tableau, on déplace l'élément le plus grand vers la droite (ou le plus petit en fonction du type de tri), si il y a une inversion (le tableau n'est donc pas trié), sinon, on peut s'arrêter. 2. Algorithme
2. 1. Codage
k <- Nombre d'élément du tableau
Permut <- k REPETER k <- permut - 1 POUR J ALLANT de 1 à k FAIRE SI [ Elément (J) > Elément (J+1) ] ALORS tempValue <- Elément (J) Elément (J) <- Elément (J+1) Elément (J+1) <- tempValue permut <- J; FIN SI FIN POUR JUSQU'A [ Permut > k ]; 2. 2. Variables
3. Exemple d'exécution
4. Exemples
4. 1. PHP
$k = 4; $permut = $k; do { $k = $permut - 1; for ($j=1; $j<=$k; $j++) { if ($topDest[$j] > $topDest[$j+1]) { $tempValue = $topDest[$j]; $topDest[$j] = $topDest[$j+1]; $topDest[$j+1] = $tempValue; $permut = $j; } } } while $permut <= $k; 4. 2. ASP / Visual Basic
k = 4 permut = k do k = permut - 1; for j=1 to k if (topDest[j] > topDest[j+1]) { tempValue = topDest[j]; topDest[j] = topDest[j+1]; topDest[j+1] = tempValue; permut = j; } next loop until ( permut > k ); 4. 3. Delphi / Pascal
k := 4; Permut := k; repeat k := permut - 1; for j:=1 to k do if (topDest[j] > topDest[j+1]) then begin tempValue := topDest[j]; topDest[j] := topDest[j+1]; topDest[j+1] := tempValue; permut := j; end; until Permut > k; 4. 4. Java
int k=4; int permut=k; String tempValue; do { k = permut-1; for (int j=0; j<=k; j++) { if (((String) logValid.elementAt(j)).compareTo(logValid.elementAt(j+1)) > 0) { tempValue = (String) logValid.elementAt(j); logValid.setElementAt(logValid.elementAt(j+1),j); logValid.setElementAt(tempValue,j+1); permut = j; } } } while (permut <= k); |