Aller au contenu

Rechercher un élément dans un tableau trié⚓︎

L'objectif de cet exercice est d'écrire une fonction indice

  • qui prend en argument :
    • un tableau valeurs rangé dans l'ordre croissant
    • une valeur cible
  • qui renvoie :
    • l'indice de cible dans le tableau s'il en fait partie
    • None sinon

La fonction indice utilisera une fonction indice_recursive qui sera récursive et qui prendra les mêmes arguments que indice, et en plus debut et fin qui désigneront les indices pour la recherche : de debut inclus à fin inclus.

Le tableau valeurs pourra être rempli d'entiers ou rempli de chaines de caractères, sans aucun changement à procéder ; en effet ce sont des éléments comparables entre eux, ordre naturel pour les entiers, ordre lexicographique pour les chaines de caractères.

Exemples

Python Console Session
>>> nombres = [2, 3, 5, 7, 11, 13, 17]
>>> indice(nombres, 7)
3
>>> indice(nombres, 8) is None
True
Python Console Session
>>> fruits = ["abricot", "kiwi", "mangue", "poire", "pomme"]
>>> fruits == sorted(fruits)  # le tableau est bien trié
True
>>> indice(fruits, "kiwi")
1
>>> indice(fruits, "cerise") is None
True
Compléter le code ci-dessous

###(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 : 5/5

.128013e9_kySol2p]1Nh=m0g4)ds8i,vnP +;/7(bf6ur:53[ac-wt050v0b0W0S0y0i0w0D0T0i0S0w0w0p010W0y0k010406050w0M0q0q0S0N0f040g0h0i0M0;0h0B050G0{0}0 110_0k04051h1a1k0G1h0_0v0y0A0)0+0-0/0+0B0s0M0S0s0b0U0k0f0W0o180D0o0y0s0o0i1M0o0W0@050!0J0i0b1t0,0.011L1N1P1N0W1V1X1T0W0N1i1H0)140w0k0S0B0/0j011Z1v010K0$0b0B0S0q0b1T1^1`1 1#221X25270@0a0D0C0N0h0k0h0w0y170B0D0Y1?0N0N0b0T2s1a2a0B1i0G1H2F1/1;1:1U0v2c1w0y0B242p1T1q1s0*1!2P2R0B0h2V1T0k2y1i2D2F2,0`1_2t2X202#0N0~0i1T0S1K2y0K0/030d0d0T2$0b1P2!0h0U0j0U0m0@0D0m1a0S2-2:0^2/2b2=1#2@2_2{2}0b2 01313335372S3a3a3e0j3h3j1`3l2D2O013q0S2`1i2|0o2~3032340Y3A2#3C0Q3e0Q3G2C3k0_3K3o0/3N3P053R3T3w3V3z2Q3B3b0t3e0t3(1b3*3m2;1u3p0h2^3O3s3S3u3U3y3X3`3Z3b0P3e0P402,3+2:3L3/4a3?3x3W364g393b0L3e0L4m423,453.473r3Q3t3v4u3_383C0H3e0H4D3I4o3n4G3M4I494K4b4M3^4f4P3b0x3e0x4U2E4W442Y4Z483:3=4c3@4e4w4+0U0c3e0c4:3J4p3-4^4J3;4L4d4v3Y4y3c0r0@0m0r554=4q4!4`5c4}5e4x3C0m3d045w5m435o4_4s4|4N4*3{3c1}5y3F0G3i3)4V5B584r4$4t4)4 5I0m3#5y3%5N3H4;5R4Y5T5b4%5d4O5Y3}5y3 5%5P2E1l2*1a2V2I0v1;2N584v2U1r1i2)0b2+3k5_1i4v6a2b0y0v0/322D5v3s6h6j4~5f6m0D2g0b6p5t505x3(4F4@0e0@0Y0K6c5*4@0V3e6H6B2?0K0@2Q1q0T0b0d2y0T0M0N2q0A0b6M574Y0?040I6%4X4@0B0@0A3O0b6Y0w6-4?206*0z6c0D6I2?0@0T0y1W6$413I711#6}6 7a3.6E0b0J166`3L7c782E706N3p0@22197n6f6{7b0@0u0O6c0_7v5B6o016k2:3C5K5b7G5W6r3b1}6t266v7H6q5u7Q1T5%0D7#7p6(6C6Q6G7v7%6.72040Y7i0W7d7q0/0h0@020s0W0F7@7(7/7t7k586*7B7v7D2.3K7N0d6l3b5!7M6i7V6x5I3#7S276w5:4h0U8g7!7$8v7e016D042y0W6Y7u2,7-7x0/0e0T0@0n18774n7k8c8e0U5=8h8p5H8r3}8n7U7O7X8T7Z3i8w7^3M0@0q0$0y6@807.1#7`040p8?8H016*6,7E8,6:7:7h7j7,8x8_0E8|4q7s2Q846)7z9b588_0G0G9i4Y8/0@5M8P914p8R7J4i6n8i8$504j8!8W5X8r4j2F8*7$8x8z0y7+8F8x936=1X6^9f4@6*0R9V7/8/1P8=9t8@0/6*0l9n4@8_7|7~9-7/74769Z7y04879s8a9u9z8d9w0U4A4K8c8k8r4A9D8j8q5ga43G8v8+811#8z8B8D9=7r046R0y6T6V2z6^1r8O6b8,8 9_7f049S6@6ZaB8~0@6~979273751XaH7m9PaM947=aQaJanaC9#8;0MaY018_0Ua%9p5yaW040u7C8Qa08S4Ra5a0a75g4Raa9A5Ia^af9K8,8z4w9O3k8G9caD6?9U9(8}9XaH93a!9%9~9)aI049,aLai7_7{0i9;bqbm939@aPbe7l0@9|42bB9v1`3C4-a_9E7P0U4-a~7W50bKb2agb958ak0Zambw8}93aqas6Wav6#a.90blb$6;bcaGbB85aXb#babzax79azb_aSbr8-04bja$b`9j0@9ac79o0y5ja.aKc1bx9d8Eayc26*a:88a=6p8S52bLab8X5g52bQa{3CctbUbW4Yb50%b}5`b 9{a;bGa?a25k9ybM8%cQczac5v5i9I04bV7#9L0@al0Nck3IcE6/8.8:bkbFb/0DbH0B5v6z2|a6cW3b5w1~6ucS6y6z5%89cl6gcObIc 7Lc|a`c~5Jd17Td35Y7Ld6cq7V8S5ZcRcv9F5gdrcVcw5v8t5Ob47gb7b~c26Kc!bh6Pap0B6ScI7wbC6+bhb;9Tb?c?b^04cgb89QaN9^b@9ga/bE5QcNcrcP8Udedk8r0m8Zd2dtbNd@8)c!b3c2bY8Cc*a%b%dMar6Ub*6Zawb-dSbbdU6_d(9Wc0d!aTb|cfa+cd045leh6|ejc,9Q0J0@2fecesaoaEbddWd)coch8}a)eoceeB9*9hcp7E0G6e5{695}661a0W60eY2L2G0S762F5~7D0Y0!0$0w04.