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

.128013kg[: r);S/N(lo4y,6b=ac1+5ud3t28_P7evp-fh09mn]is050B0J0D0v0U0n0V0f0w0n0v0V0V0u010D0U0L010406050V0A0R0R0v0g0q040j0o0n0A0:0o0S050k0`0|0~100^0L04051g191j0k1g0^0B0U0K0(0*0,0.0*0S0c0A0v0c0J0M0L0q0D0O170f0O0U0c0O0n1L0O0D0?050Z0t0n0J1s0+0-011K1M1O1M0D1U1W1S0D0g1h1G0(130V0L0v0S0.0E011Y1u010N0#0J0S0v0R0J1S1@1_1~1!211W24260?0a0f0H0g0o0L0o0V0U160S0f0X1=0g0g0J0w2r19290S1h0k1G2E1.1:1/1T0B2b1v0U0S232o1S1p1r0)1Z2O2Q0S0o2U1S0L2x1h2C2E2+0_1^2s2W1 2!0g0}0n1S0v1J2x0N0.030G0G0w2#0J1O2Z0o0M0E0M0x0?0f0x190v2,2/0@2.2a2;1!2?2^2`2|0J2~01303234362R39393d0E3g3i1_3k2C2N013p0v2_1h2{0O2}2 31330X3z2!3B0C3d0C3F2B3j0^3J3n0.3M3O053Q3S3v3U3y2P3A3a0p3d0p3%1a3)3l2:1t3o0o2@3N3r3R3t3T3x3W3_3Y3a0z3d0z3 2+3*2/3K3.493=3w3V354f383a0s3d0s4l413+443-463q3P3s3u4t3^373B0I3d0I4C3H4n3m4F3L4H484J4a4L3@4e4O3a0F3d0F4T2D4V432X4Y473/3;4b3?4d4v4*0M0Q3d0Q4/3I4o3,4@4I3:4K4c4u3X4x3b0P0?0x0P544;4p4Z4_5b4|5d4w3B0x3c045v5l425n4^4r4{4M4)3`3b1|5x3E0k3h3(4U5A574q4#4s4(4~5H0x3!5x3$5M3G4:5Q4X5S5a4$5c4N5X3|5x3~5$5O2D1k2)192U2H0B1:2M574u2T1q1h2(0J2*3j5^1h4u692a0U0B0.312C5u3r6g6i4}5e6l0f2f0J6o5s4 5w3%4E4?0b0?0X0N6b0f5)4?0S0N0?2P1p0w0J0G2x0w0A0g2p0K0J6b6I1 0=040m6Z6A2=0?0K3N0J6U0V6)564X6$0r6G6!3o0?0w0U1V6Y403H6{0.6^6`6*6|040X0t156=4W4?76722D6H783-0?21187i6e4=6#0?0h0e6b0^7q5A6n016j2/3B5J5a7B5V6q3a1|6s256u7C6p5t7L1S5$0f7W7k6?6B6M6F7q7Y7f6+7a0J7c0D777Z1 0o0?020c0D0i7/7)797o7e7s1!6$7w7q7y2-3J7I0G6k3a5Z7H6h7Q6w5H3!7N266v5/4g0M8c7V7X8r74016C042x0D6U7p2+7(800.0b0w0?0l17714m7 0f888a0M5;8d8l5G8n3|8j7P7J7S8Q7U3h8s7l3L0?0R0#0U6/7{8D017=040u8:3K6$6(7z8)0S6D7,7d7%8t8?0y8_5R7n2P8M576$0h974X8?0k0k9f4?8,0?5L8L8}4o8O7E4h6m8e8Z4 4i8X8T5W8n4i2E8%7X8t8v0U7$8B8t8 046-1W6:9b6@0?0d9T6J8+8-8/9q7|750?0T9k7;7?7^7`938~6}6 1W9X7t04839p869r9w899t0M4z4J888g8n4z9A8f8m5fa33F8r8(7:1!8v8x8z9+796N0U6P6R2y6:1q8K6a8)8{9^799Q6/6Vaz9(046_9:ah7m046~70aE017h9M9;7+7-aOaQ3j8C4p9Z1O9#aRaJ8=0?0Mam0.9m5xaV7u7x8M9s1_4P9v9B7K0M4Qa99x5H4Q9F04ag9%8u0?4v9LaX9N6,6.9S9$8;6$9WbgaZ048,a#0Aa:049*aIb68?020n7_a,8*aL9?av73ax0?9{41bka@0S3B4,a49 a65f4,a 7R4 bNaeaf7W9I0?ak0g8AbbaSaoaq6Sat6Xbq8|9}b69OaBbfb=bh0?aHa%b?9=aNbk9cb|bz9Obn8.bpbt8;95bza.3fc29UaGc599b(bEa(9da=bJ9 8P51bOa{8!51bTbQ3BctbXbZ8)8v350VbD5_bF9`cpb`8Ncra15ja`aa8U5fcRcyab5u5hb3bYcDa(aj0Yalcablc7a$bIcNbK5u6y2{a5cY3a5v1}6tcv6x6y5$85aw9~6o8P0x7Gc^bPc`5Ic}7Oc 5X7Gd2a?cPa^c{8cdadg8n5Yde8kcT9CcV8p5NcE90ba3HaY5R6L04b+cI7r8`0?b;d4b 9PbeaDcg7gc4c,98bBc1cNc3047vcMdO2sc=c{8Rdpdva|0x8Wc~d/8!d;8$b49HdA8wc*b%cjdH0S6O6Qb-6Vaub:aOb@dR6;dT9_b}b)a(9OaM9@ee81dVb~8;a.5kemaFegdD9N0t0?2ee9etbAb^dSd!ch9edW9ga*cd0U5ibqeI9|6a0k6d5`685|65190D5 eZ2K2F0v702E5}7y0X0Z0#0V04.