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
- un tableau
- qui renvoie :
- l'indice de
cible
dans le tableau s'il en fait partie None
sinon
- l'indice de
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
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
.1280130ldy1,4-]k/eibmc_:35aPr+ 7=9o[fgt28;6sSh)(pNunv050d0m0H0v0n0c0M0z0q0c0v0M0M0B010H0n0R010406050M0T0p0p0v0x0e040N0D0c0T0:0D0U050l0`0|0~100^0R04051g191j0l1g0^0d0n0V0(0*0,0.0O0n0G0O0c1x0O0H0?050Z0o0c0m1s0+0-011w1y1A1y0H1G1I1E0H0x1h0H0O0(130M0R0v0U0.0I011K1u010F0#0m0U0v0p0m1E1%1)1.1M1;1I1@1_0?0a0z0w0x0D0R0D0M0n160U0z0X1#0x0x0m0q2e191|0U1h0l1Z2r1W1Y1X1F0d1~0.1A0U1?2b1E1p1r0)1L2B0n2D0U0D2H1E0R2k1h2p2r2V0_1(2f2J1/2O0x0}0c0?0z0f2o2Z0@2Y1}2#1M2%2)2+0I2.1)2:2p2A012^0v2*040z0t2|2q0^2 2?0.32340z0h382~2Z303e2+0u3i3a3k3c310D2(332+0L3p2;2!1t2@3u2_350A3z3b3C3d3E3w350J3I3r3K3t3v3f0C3Q2=3S3m040f0b3X3B2K3T3F0f2-1a2/3q3Y3*3!0f2{3/2}3;3)2$3M340f373`393A3l3 0?0f3h432r2S0m2r2H2u0d1Y2z3s0q2P1`1h4g1i2T3A2W2/054m0X2U3R3*0k0?0X0F3i0z453s0U0F0?2M1p0q0m0r2k0q0T0x2c0V0m3i4I3S0=040Q4Z3J3?0?0V330m4U0M4)4A1/4$0g4G4!4+040q0n1H4Y4b4{4@0?4_4b4H4*2$4D0m0o154=3=5404562V584?2@0?1;1852591M4$0P0s3p0z5y5l5g1M4C040n4F57535n040X5d0H4`5s0.0D0?020G0H0K5O5m3d5o2M5f3}5t0?5w4b065z5-5A5%0.5D2k0H4U5q5k5I5;0q0?0S17512V5,5z5{310?0p0#0n4/5X5B5Q0?0B6c5:014$4(5r5Y665K5c5e5H5P015R040y6h3l5!5_4v6t5u6y3s6v0l0l6F3S680?3_625-655D5F6K4|4-1I4:5$304$0E6Z4J67696b6m6d6j0?0j6U1/6v5T5V6;5J4~506%4#5)5x5.5y6R0?5?5^6_5Z5E0U4O4Q4S4:1q616C6n6k6}6V4.6Y6,6i4^776o6{1I7k5h5j2/5/6z6p5M7v5(5i7r0U6)1A6+5`6t6v0i7r6M3#7D0.6E5+6Q6t5D0m1A5G7L6n7H046W4/4V7S6.046$7o7A687J0T7-4$6:6s6n6?0c6^7|6-7(7t7g2}654$5*6P717z3s5=0Y76816i7(4N0n4P4R2l7e4X7_0?6l2X6t7(7*7n8u7i557G0?848r7F8h7=6*7^8H6G0?6x8L6L0n488F7x2}8c3Z6A8F0P70727X0?7Z0M852q876 7V8b7304750x6B8V657(7?6a8K62063|305D4E7G4L797b8F8t7h824,7m7,7;3s7q8P4|8E9g6~045v8#8W4B748f8@8C978l7c8o4V7f997-8w9e4;9m3*9i7$9c4}4 7u9I7w7P8R043%9Q7E8U2q9r2$0o0?219D9W788x9f8z6-7U9L6i7N9S8S9*7.8!5+194x4e1k4s0l4q2s4i192va60v504f1q2:a20Y0!0$04.
# Tests
(insensible à la casse)(Ctrl+I)
(Ctrl+Clic pour inverser les colonnes)