5-dichotomie
important
Recherche dichotomique itérative
On considère dans cet exercice des tableaux non vides contenant des nombres entiers, tous distincts, triés dans l'ordre croissant.
On cherche à déterminer l'indice d'une valeur cible
dans ce tableau à l'aide d'une recherche dichotomique dans sa version itérative.
Écrire la fonction indice
qui prend en paramètres le tableau de nombres tableau
et la valeur cherchée cible
.
Si la cible
est dans le tableau, la fonction renverra son indice. Dans le cas contraire, la fonction renverra None
.
Attention
Les tableaux des tests secrets peuvent être très grands. Une recherche linéaire naïve prendrait trop de temps lors de l'exécution.
Les tests secrets limitent le nombre de lectures dans le tableau à 100. Si votre code accède à plus de 100 valeurs dans le tableau, une erreur sera levée.
Exemples
🐍 Console Python >>> tableau = [ 23 , 28 , 29 , 35 , 37 ]
>>> indice ( tableau , 23 )
0
>>> indice ( tableau , 29 )
2
>>> indice ( tableau , 37 )
4
>>> indice ( tableau , 10 )
None
>>> indice ( tableau , 100 )
None
Question
Compléter le script ci-dessous :
.128013Cy1-]/wi_qP+r 79fI;gR2àh)(OEpNînD0ldT,*4Lkéebmc:35a=o[.8t6sSèuxv050K0S0)0Z0i0J0+0o0V0J0Z0+0+0!010)0i0D010406050+0.0U0U0Z0n0c040,0#0J0.140#0G0o020Z0U0D0t0o0v0S1e0n0k0.0S0+050g1b1d1f1h190D04051M1F1P0g1M190K0i0:0|0~10120y0i0u0y0J1%0y0)17050@0T0J0S1Y0 11011$1(1*1(0)1:1=1.0)0n1N0)0y0|1k0+0D0Z0G120w011@1!010r0_0S0G1s0S1.2a2c2h1_2k1=2n0U2p040a0o0l0n0#0D0#0+0i1n1p0=280n0n0S0V2K1F2r0G1N0g262W2325241/0K2t121*0G2m2H1.1V1X0}1^2*0i2,0G0#2:1.0D2P1N2U2W311a2b1p2=2i2`0n1e0J170o0d2T3518342s371_393b3d0w3g2c3i2U2)013n0Z3c040o0X3r2V193u3l123x3z0o0O3D3t353v3J3d0Y3N3F3P3H3w0#3a3y3d0*3U3j361Z3m3Z3o3A0p3(3G3+3I3-3#3A0(3;3W3?3Y3!3K0q3|3k3~3R040d0I433*2?3 3.0d3f1G3h3V444c460d3q4h3s1Q2 1F2:2Z0K252(3X0V2{2z0;1W1N2~0S303h3N054A0=4I4k2i0Q170=0r3N0o3)3Q0r172^1V0V0S4K3=4c16040A4)3}4l17200S0Z0.4/4P1_4,0M4V4X3X0G170V0i1;4(4p2V503~4,0z0W3U0o5g4W4*384S0S0T1m4 5j1_0#170!5p4:2i0U0i174958185h5i5w3m172k0G5v4{125s045u5C5F5M3w0T172w4`4b2i4,4.5C5a4;044?4^5Y3v5c5L5Z5r170e5:3v5y174g31065E5(4Q170h1$1=5^515l5n0)663~5O020J0)0t5Q315S5;3I5I2^5-3X4,5e5C5~5E5h605H045y1*0S4_5R6x5N5t6b4+175$335q6m040=696I2i5O0m6S6y5J6p5b170z6W6G040g0g6%015`044o5}6v6w6N014R040i4U6E6@520454566,6d6f0t6,6 5+6D6M5G124,0$6Z5)6A0i6C7g5!170f6s6;6=6v6F3w6n5K6}7c015O6i3h6k3Q177i7k7x5T5O5@7I6l6-5z475f7r7t6_0S1*6|6j7t6 71657M3v7A7B3s7D675*0Z565,5%6@7e7l6y7G7a4J7?7n7p4i7r7s6@6_2P0)0.0n7w7Y6~7F0_7j7{3s6u6=7T177V0+577b5T6r7R815g7Z685o7%3X7A778c6B8f2V7,6c176V8x3~6.5|806?7y840?87897C7T0V170E1o8n4i1F4M4H4r8(0g4u1F0)4w8-2$2X7/1=2W4u1L4O7N2P0U0j0r0Z0Q0S0j0y0X171x1z1B1D0o7 4q1S3i2:3v0Z0K0U1o2J0i1o0o2^0r5O1L9i9k9m2K0e140)21041x0V0y0S0n9F1?4$0y0#0)0#5y9a9q0)0R0n0Z140:1?0W0o0x280G2n0F23571T1O040s0J0o0+000Z0u2J0o2M0J9@0J0u3Z2J0y2y9{1?2P9J9I9G9{0i9F9N9P0i9R3lag1C0%1Q3i8+4E1U1W9v9l0G9n9p9r9t1Oas9x9o0G9z2J9C0P0Z0oa79Ga99K1?9}4#ac9K0.0o7`am8`0P1?0V3y0V0.9;9|00aQ4%9{aT7`aU9U2J1?9O1m0S9s0i0{9a0J9a0{4A1d2m0@0i2P0+0%0o0s540o9p2~2F2H1?4L4B3v1{1)1+1-8{7E6z8d7H8a7y8z8J6J4-7^6O6Q8wbu7J8H8A046Y7=7y5/bx6T176*6,6.6:4J0g8%04al9f8`0B0n0M9{2cb09Hb40G0{0~0G0u9^9b2Mbe0u9V1I2K28b20o1=0o0bb%0~0ob40Jc00=0{b37j0nca0+0)b 0i5y9T0Sb80baZa#a%4W8%bk1+1}1,2q7y6 aVbN5=5P6,5#bA7u6P5mbD8U6@6UbHbJ8o7NbMbE7N5ObQcB12bS4KbV4B3A0D6Ccg2b0na`ca0/0V0R0=0n0|0?0)a?0^c7aOcia=b80C1pa_0r0?b%2Ib b?6C0/9q0G4$9bbi2M3Xblcvbo8ucI6R5%c#4N0o0?crbjdicubncx5T6 cPbUbW9=1ocgb_2c0K0+c36Cc?0+9Pa4dgaZ3~djdybp7-bC6acX7zbGd#dB6odpdEc(1m9{0R2b109Hb aI0:3ydNchcjclaW9.0Hb)c@0|0 bc36cpc0aPddaRa-aUbsaT2m0o1m8d0+2ccgc40~0n0ud{a)2^c_0nd_c|9cdudhdUdx1~dz7Nczef736Hd(8vd!cT7(d%eO6q6KcGd)8T7+7t7KbHdZcGcScLbvbP6+d#cZd+c$bY9-1Me1b-d8e40{2~0R8m0G0)dM0obe1;0-a42,9=1?2G8mf1e5a!b$ds1p0l0c261odMcae~cc0{0G00dGfb0{2Mc6e9c~c_b80L0#a^c-b%0,0ib fr1p0Zd_9`1eau0Da%0Ra5fp9P0Tb60o0r0J9N0@e~b.f82Ef3a48m9V9`0Z0Dc+aT6s9-9h3X9jatavd20/1s0D9C9uf`9wau9y9A9C0C0/1yg19,9gardw1|dW7t2v2m2o172B0b1odPc0fhfjeW594G8{324JbW7t0u4,020u6ggGgIgH1veUeMeJcDe,4Z6/0%5BeR8G040N0NbR7P480w3C6tgDgFgLgJ0tg.4WbKdA7v4V8tcMeKgW4c0UgS0wgUgPgZg#5{0Ig(gP8Ig|5xg$4a3vgE17g.hhgLg;cQbqe#d#cNeLbId*6j8F4c0V0d1703d/d;8m2ye~a5e42b549Thd3Xa04!0G7X8#6@hf04higK6ghk7|bLeTg=eGgOhoeQe(g?hrgwdX6!046$h(6)h46/g^7thwhyhA1^1yb3hFa!hH2JfSf!cdhFc4dPb2hK3~hM6`hOic4chShUg/hjgNdncKeXg`04h9h*cRh!hl7-dCiqe)047Lha6yhnixh/h;iE6(e+iK7O17bT8ggD5O0(0%0q0(0(0O0*0Y0*0p0O0X4f0Y0(0S0m0X0I3:g*dq8*gy4tapi_0:an8_4t0?c{0+04.
# Tests
(insensible à la casse)(Ctrl+I)
(Ctrl+Clic pour inverser les colonnes)