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

🐍 Console Python
>>> nombres = [2, 3, 5, 7, 11, 13, 17]
>>> indice(nombres, 7)
3
>>> indice(nombres, 8) is None
True
🐍 Console Python
>>> 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

.128013f06S:d=4-yr/Nopg2mcb1w937ve[ l,8+P5)ti]kn;ua(_sh050g0B0L0S0M0E0V0D0t0E0S0V0V0h010L0M0p010406050V0R0s0s0S0l0k040e0o0E0R0;0o0P050m0{0}0 110_0p04051h1a1k0m1h0_0g0M0A0)0+0-0/0W0M0q0W0E1y0W0L0@050!0u0E0B1t0,0.011x1z1B1z0L1H1J1F0L0l1i0L0W0)140V0p0S0P0/0r011L1v010b0$0B0P0S0s0B1F1(1*1/1N1=1J1^1`0@0a0D0I0l0o0p0o0V0M170P0D0Y1$0l0l0B0t2f1a1}0P1i0m1!2s1X1Z1Y1G0g1 0/1B0P1@2c1F1q1s0*1M2C0M2E0P0o2I1F0p2l1i2q2s2W0`1)2g2K1:2P0l0~0E0@0D0v2p2!0^2Z1~2$1N2(2*2,0r2/1*2;2q2B012_0S2+040D0y2}2r0_302@0/33350D0i392 2!313f2,0J3j3b3l3d320o2)342,0d3q2=2#1u2^3v2`360z3A3c3D3e3F3x360G3J3s3L3u3w3g0x3R2?3T3n040v0c3Y3C2L3U3G0v2.1b2:3r3Z3+3#0v2|3:2~3=3*2%3N350v383{3a3B3m400@0v3i442s2T0B2s2I2v0g1Z2A3t0t2Q1{1i4h1j2U3B2X2:054n0Y2V3S3+0O0@0Y0b3j463t0w2,4H3K3@0b0@2N1q0t0B0U2l0t0R0l2d0A0B4M4B1:0?040T4%3?2%0@0A340B4Y0V4-3~1N4*0F3j0D4I3!0@0t0M1I4$4c503+4|4~584/040Y0u164_315a4c4 4N5d1=19575n4{0@0K0f3q0D5y5m4(1N4D040M4G5l5c2^4E0B5g0L5b5s0/0o0@020q0L0Q5O5B3e0@5p5i3t4*5w4c065z5,5A4.5C0@2l0L4Y5q2W5.4`0/0O0t0@0n18562W5+5z5I5Z040s0$0M4?5X5/5Q0@0h6d5{014*4,5r5Y325K5M6i315R040H6s3t0P5!2N5$3T4*0K6x3T6u0m0m6G3+690@3`635,66015D5F6L5d4;1J4@6C590@0C6#5d691B6c6n6e6k0@0N6W1N6u5T5V6?6753556)5t045)6Q5-5y6S5D5=5@6{6p5E0P4S4U4W4@1r624w5P6:4+6 676Y4?4Z7o7m4}5H7l6z046}1J7t5k5_6S7y5f5h6.6j7D2:5`3m0@6+6b0R7a6u0j7a6N3$7C5u5x657l5D0B1B5G7E7x4:4=6!7J5j6%7t7y7Q6-2Y7l4*6=7w6o6^0E6`7 6/7y7A7j2~6S5(7#74765;0Z79846j7y4R0M4T4V2m7h4#7Z7n7;6y7.6Z7s8u6D0@7v7,6o86547B8z6$048C7M7F7P6a7`8M7l6u6w8i317X3/7{6o7L2~7N8v045#8I4)7!5*6R7%0@7)0V882r8a0@723;74758:04780l5^8R8E8O6,7S5*063}315D4F7t4K367@4P7c7e8s6m8Z858w7r4^8+708L8$8N7z8G8@4A6/6E8{3|8/6o778g927a8k7d8m7f8p4Z7i9m7@9q7:9o7K8B9L529z8s9v2r8%3T7X3(9t0/8#9)7F0u0@229T9.7b7q9W7k8!8-8D6/7U7W0M498s6F5*1a4y4f1l4t0m4r2t4j1a2waj0S554g1r2;af0Z0#0%04.