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
.128013nb1lu=h,. P458é0S7p9_(6[àe]yvfm-k)cirwdL;/3:îqgats2Rjo050N0A0X0W0K0e0Y0k0J0e0W0Y0Y0g010X0K0t010406050Y0f0F0F0W0L0C040r0$0e0f0`0$0b0k020W0F0t0P0k0!0A140L0U0f0A0Y050Q111315170 0t041v1C051F0Q1F1H1C0 0N0K0D0/0;0?0^0h0K0V0h0e1V0h0X0}050*0c0e0A1Q0=0@011U1W1Y1W0X1(1*1$0X0c0$0N171%0L1D0X0h0/1a0Y0t0W0b0^0Z011,1S010E0,0A0b1i0A1$27292e1.2h1*2k0F2m040a0k0l0L0$0t0$0Y0K1d1f0(250L0L0A0J2H1v2o0b1D0Q232T0X2120220N2q0^1Y0b2j2E1$1N1P0:1-2%0K2)0b1}1O1$0t2M1D2R2T2~10281f2/2f2@0L140e0}0d2Q320~312p341.36380}0Z3c293e2R2$013j0W39040R3n2S0 3q3h0^3t3v0m3y3p323r3E0}0n3H3A3J3C3s0$373u0}0x3O3f331R3i3T3k040s3Y3B3#3D3%3V040o3+3Q3-3S3U3v0u3H1E2|1v2-2W0N2!3r0J1}2w0%1O1D2{0A2}3d3}460(4e3g3^0H0}0(0E3}3,2:010M0}0k4q3@4s0b0E0}2X0K0v2=0Y0A0L2P1w4f4r2f0|040w4x4k4z4C0W1)0A0W0f4S3!4s4P0I0S3O0k4,4w4N3i0}0b3H4.4y2f0$0}0g4?3Z3K0c0}2t4#3r4P4R4L3o4~3R0b4V4X4Z533R4(4+4-594l0}0E3T4}4/3D0}0K5p4^1.0$4u042=5u4T3550040L290V0A5f3^555K4s0F0K3a5N4O0}0i5B4$354;5S1.4(4*573z4-5*4@5C4:040#5W3r4`044|5(045,5X5.5t5_065+5j5q3s0}0D3u0A0f0L0v0W4F0b4H2M0L5;3R5?5^2~5{3K5c1*5e5_5k4%0}0y5!5r5z6x014P0B5i616t2f4m040M1U1*6i3^5b5/6N4s5?020V0X0P6R2f5P0}0q6Y5w5y290N6%6y661*696b6d6f4I6,016T0e6W6^6P1^4Y4!6s634P6w725v6y5:5_6n6j0}0G6^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~8p0Q411v0X438u2Y2U1|1~2W4W1*2T411B4j87012M0F0v0E0W0H0A0v0h0R0}1n1p1r1t0k7n4f1I3e1C0O003u0V3T2G0h2v0k0N0f0k4D0k280L0k8j4J0K1e0k1t0X0k0f1f8,8.238;3h0K8Y0k0z250b2k0T2X0A0j4w8%8H0O0W0k660L0K8D1+0K0J0K0k2@130p1+058o8e676:8i6e8k6h0Q9I920Y940Y0$0f0D2j949D0F9F4w9I0:5J9Q47040j1E3e8s0)0+0-04.