Tri à bulles d'un tableau⚓︎

Principe du tri à bulles

On parcourt le tableau et on échange deux éléments consécutifs s'ils ne sont pas correctement rangés.

On démontre que si on exécute \(n-1\) parcours en appliquant le même procédé d'échange, on obtient un tableau trié.

Simplification: après le premier parcours, la plus grande valeur se trouve en dernière position. C'est sa position définitive. Au parcours suivant, il n'est donc plus nécessaire de la comparer avec l'élément précédent et on arrête les comparaisons à l'avant dernier élément. Les deux plus grands élément sont alors à leur places définitives. Au parcours suivant, le troisième, on n'effectue donc aucune comparaisons avec les deux derniers éléments. Et ainsi de suite.

Tableau aléatoire Tableau croissant Tableau décroissant

Trier votre tableau

Objectifs : Écrire une fonction tri_bulles qui prend en paramètre un tableau d'entiers nombres et opère un tri en place de ce tableau en appliquant l'algorithme du tri à bulles.

  • La fonction ne renvoie rien, (à part None) ; inutile de placer return.
  • Le tableau nombres est modifié par la fonction sans utiliser d'espace mémoire supplémentaire; on parle donc de tri en place.
Exemples
>>> nb_premiers = [2, 11, 3, 7, 5]
>>> tri_bulles(nb_premiers)
>>> nb_premiers
[2, 3, 5, 7, 11]
>>> seul = [42]
>>> tri_bulles(seul)
>>> seul
[42]
>>> vide = []
>>> tri_bulles(vide)
>>> vide
[]

Compléter le code Python ci-dessous qui implémente la fonction tri_bulles.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5
.128013[(lbsS]et-ph4rdx5;jf1uma"ov+w7g,_/3=in 6k:é)y 2Pc030j0c0d0s0F07090O0R070s09090E0t0d0F0f0t020H03090q0r0r0s0i0N020a0u070q0+0u0G030C0=0@0_0{0:0f02031b141e0C1b0:0j0F0v0!0$0'0)0g0F0z0g071s0g0d0.030V08070c1n0%0(0t1r1t1v1t0d1B1D1z0d0i1c0d0g0!0~090f0s0G0)0P0t1F1p0t0o0X0c0G0s0r0c1z1Y1!1(1H1+1D1.1:0.040O0Q0i0u0f0u090F110G0O0T1W0i0i0c0R28141?0G1c0C1U2l1R1T1S1A0j1^0)1v0G1-251z1k1m0#1G2v0F2x0G0u2B1z0f2e1c2j2l2P0;1Z292D1)2I0i0^070.0p2i2T0/2S1@2V1H2X2Z0.0P2%1!2(2j2u0t2-0s2!020D2;2k0:2@2+0)2`2|0h2 2?2T2^350.0l38313a332_0u2Y2{0.0I3f2)2U1o2,3k2.020y381f2N142B2o0j1T2t3i0R2J1;1c3C1d3A2R152'033I0T2O3h3s0)0J0.0T0o380O3q3b0o0.1R0F0B080q071D093y323X0t0-02063@3W2E2_0.2I0r082e3?3Q2=3(3i3{0M0K3f0O4g3'3^400G423%4a3_0u0.0E4n4j2W080.1{3~2*3_3{3}482k4o4k420u44464z3r404c4f4h4G1)3Z020o3k4t3 2W0.0F4Y4A400u0x4#134E024i4Z2,4w020i1!0z0c4M2^4C4{3i0r0F2#4~4B0.0A4%4N4!024,2R4u1H4c4e4-0H4h5j4/4'4T0.4W0i573b0.0n5r3i4)4+5v3_0G4=4@0G4_534O0.4D5c4:344m4-5l581H4q020e5z4H024$4-4S5e0.4d4Q5k5k5!0)0R0p0.010O121W0r1Z2e2a0c0q0k0O0L070L1:0G0d0Z3I0G090L0R100F0o0Z0U5:293=5}0R0g4^1E260O0G680c0'0W2e5'5(4R5d3Y4#3$5O5*415a4J456r5G1)3{056J2,5t6N0)3{0b5V1)5S000z0d0m6U6O6F4K6I5Z6y3`0.6M6)5L6E5u6C6*5S0w6#0)50526.5m5#020b5g2P5i6w756D4l6%6H475K6~6R6,6Q6:7g6S566=6/78437a7i7f6}5Q5M026;2P5P2^6@6_0t6{022$7s4|0.6T7l7d0t5S4s7K7t6E7o4L7G4b7r7c7Q787w2'7y5w0.6^7P2^7D7F7X7H707k7x774I6'7b3R6*6L7g7Z7q703p0C3T0c2l2M833B1l3D2o2r2m0s1C860C3C0:8g0U0W0Y02.