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\).
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
[]
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
.128013fe)à6i1p3m_:Svk-(q5rtg.=sîwcd;,Po/]haR2n bl0éj[948uLy7050D0c0v0L0g0R0z0P0C0R0L0z0z0y010v0g0i010406050z0Z0k0k0L0u0#040n0H0R0Z0`0H0O0P020L0k0i0E0P0M0c140u0s0Z0c0z050I111315170 0i04051C1v1F0I1C0 0D0g0o0/0;0?0^0K0g0w0K0R1T0K0v0}050*0Q0R0c1O0=0@011S1U1W1U0v1$1(1!0v0u1D0v0K0/1a0z0i0L0O0^0N011*1Q010b0,0c0O1i0c1!2022271,2a1(2d0k2f040a0P0G0u0H0i0H0z0g1d1f0(1~0u0u0c0C2A1v2h0O1D0I1|2M1_1{1`1#0D2j0^1W0O2c2x1!1L1N0:1+2W0g2Y0O0H2$1!0i2F1D2K2M2@10211f2(282-0u140R0}0h2J2{0~2`2i2}1,2 310}0N3522372K2V013c0L32040j3g2L0 3j3a0^3m3o0X3r3i2{3k3x0}0t3A3t3C3v3l0H303n0}0f3H382|1P3b3M3d040$3R3u3U3w3W3O040Y3!3J3$3L3N3o0W3A1G2=1v2$2P0D1{2U3K0C2.2p0%1M1D2;0c2?363?400(48393.0p0}0(0b3?3#2)010B0}0P4k3-4m0O0b0}1_0g0l2+0z0c0u2I1w494l280|040r4r4e4t4w0L1%0c0L0Z4M3T4m4J0d0m3H0P4$4q4H3b0}0O3A4(4s280H0}0y4-3S3D0Q0}2m4V3k4J4L4F3h4^3K0O4P4R4T4}3K4Y4#4%534f0}0b3M4@4)3w0}0g5j4/1,0H4o042+5o4N2~4`040u220w0c593.4 5E4m0k0g335H4I0}0F5v4W2~4+5M1,4Y4!513s4%5!4.5w4*040U5Q3k4;044?5Y045$5R5(5n5:065#5d5k3l0}0o3n0c0Z0u0l0L4z0O4B2F0u5+3K5-5/2@5=3D561(585:5e4X0}0V5U5l5t6r014J0J5c5{6n284g040B1S1(6c3.555)6H4m5-020w0v0E6L285J0}0S6S5q5s220D6X6s601(636567694C6$016N0R6Q6/6J1?4S4U6m5}4J6q6|5p6s5*5:6h6d0}0q6/6U0434705%0^6w5X2@5`5{5#6A5(6_6l2_6}6p6u6J737q716v0}6x747m0^6e6@6j6`6u6~7t0}7v36753.5-787B5}7a7c7w7e7y047A7i7k7l5}7u6/7E7S7x7)7,7X7Q795K7b6y7%7-7G7p4G7x7J7d5?727I7z7*4=7F046(6264664A4C6.5_1v4b473@8j0I3`1v0v3|8o2S2N4Q1(2M3`1B4d81012F0k0l0b0L0p0c0l0K0j0}1n1p1r1t0P7h491I371C0!003n0w3M2z0K2o0P0D0Z0P4x0P210u0P8d4D0g1e0P1t0v0P0Z1f8Z8#1|8(3a0g8P0P0e1~0O2d0A1_0c0x4q8U8y0!0L0P600u0g8u1)0g0C0g0P2-130T1)058i88616*8c688e6b0I9z8_0z8{0z0H0Z0o2c8{9u0k9w4q9z0:5D9H41040x1G378m0)0+0-04.
# Tests
(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)