Tri par insertion

La méthode du tri par insertion repose sur un double parcours de la liste à trier :

  • un parcours de gauche à droite commençant au deuxième élément avec un indice \(i\). On a la garantie que la liste jusqu'à l'indice \(i\) exclu est triée ;
  • un parcours de droite à gauche du début de la liste jusqu'à l'indice \(i\) pour y insérer à la bonne place l'élément d'indice \(i\). Ce parcours utilise un indice \(j\).

tri par insertion

La fonction tri_insertion suivante prend en paramètre un tableau de nombres tableau et le trie dans l'ordre croissant en utilisant cette méthode.

Il s'agit d'un tri en place ce qui signifie que le tableau passé en paramètre sera directement modifié. Il est inutile de le renvoyer.

Compléter la fonction pour qu'elle réponde à la spécification demandée.

Exemples
>>> tableau_0 = [9, 5, 8, 7, 6]
>>> tri_insertion(tableau_0)
>>> tableau_0
[5, 6, 7, 8, 9]
>>> tableau_1 = [2, 5, -1, 7, 0, 28]
>>> tri_insertion(tableau_1)
>>> tableau_1
[-1, 0, 2, 5, 7, 28]
>>> un_seul = [9]
>>> tri_insertion(un_seul)
>>> un_seul
[9]
🐍 Console Python
>>> tableau_vide = []
>>> tri_insertion(tableau_vide)
>>> tableau_vide
[]
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
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 : 10/10
.128013s3o_;8bcdufvg/0lîyàq n7apS.r1L-meh,(P2=4:jtwki9][5R)é6050j0H0R0y0U0q0b0v0i0q0y0b0b0N010R0U0z010406050b0k0G0G0y0C0s040A0d0q0k0`0d0w0v020y0G0z0f0v0Z0H140C0u0k0H0b050o111315170 0z041v1C051F0o1F1H1C0 0j0U0m0/0;0?0^0I0U0n0I0q1V0I0R0}050*0h0q0H1Q0=0@011U1W1Y1W0R1(1*1$0R0h0d0j171%0C1D0R0I0/1a0b0z0y0w0^0M011,1S010l0,0H0w1i0H1$27292e1.2h1*2k0G2m040a0v0L0C0d0z0d0b0U1d1f0(250C0C0H0i2H1v2o0w1D0o232T0R2120220j2q0^1Y0w2j2E1$1N1P0:1-2%0U2)0w1}1O1$0z2M1D2R2T2~10281f2/2f2@0C140q0}0D2Q320~312p341.36380}0M3c293e2R2$013j0y39040c3n2S0 3q3h0^3t3v0O3y3p323r3E0}0Y3H3A3J3C3s0d373u0}0$3O3f331R3i3T3k040x3Y3B3#3D3%3V040g3+3Q3-3S3U3v0V3H1E2|1v2-2W0j2!3r0i1}2w0%1O1D2{0H2}3d3}460(4e3g3^0T0}0(0l3}3,2:010S0}0v4q3@4s0w0l0}2X0U0e2=0b0H0C2P1w4f4r2f0|040K4x4k4z4C0y1)0H0y0k4S3!4s4P0!0P3O0v4,4w4N3i0}0w3H4.4y2f0d0}0N4?3Z3K0h0}2t4#3r4P4R4L3o4~3R0w4V4X4Z533R4(4+4-594l0}0l3T4}4/3D0}0U5p4^1.0d4u042=5u4T3550040C290n0H5f3^555K4s0G0U3a5N4O0}0J5B4$354;5S1.4(4*573z4-5*4@5C4:040Q5W3r4`044|5(045,5X5.5t5_065+5j5q3s0}0m3u0H0k0C0e0y4F0w4H2M0C5;3R5?5^2~5{3K5c1*5e5_5k4%0}0X5!5r5z6x014P0W5i616t2f4m040S1U1*6i3^5b5/6N4s5?020n0R0f6R2f5P0}0p6Y5w5y290j6%6y661*696b6d6f4I6,016T0q6W6^6P1^4Y4!6s634P6w725v6y5:5_6n6j0}0F6^6!043b765-0^6C5%2~60615+6G5.6 6r30736v6A6P797w776B0}6D7a7s0^6k6}6p706A747z0}7B3d7b3^5?7e7H637g7i7C7k7E047G7o7q7r637A6^7K7Y7D7/7=7%7W7f5Q7h6E7-7?7M7v4M7D7P7j5|787O7F7:4{7L046.686a6c4G4I6@5 1v4h4d3~8p0o411v0R438u2Y2U1|1~2W4W1*2T411B4j87012M0G0e0l0y0T0H0e0I0c0}1n1p1r1t0v7n4f1I3e1C0E003u0n3T2G0I2v0v0j0k0v4D0v280C0v8j4J0U1e0v1t0R0v0k1f8,8.238;3h0U8Y0v0t250w2k0r2X0H0B4w8%8H0E0y0v660C0U8D1+0U0i0U0v2@130#1+058o8e676:8i6e8k6h0o9I920b940b0d0k0m2j949D0G9F4w9I0:5J9Q47040B1E3e8s0)0+0-04.