1

Lorsque la valeur recherchée n'existe pas, l'algorithme de recherche par dichotomie s'arrête-t-il toujours sur la valeur immédiatement inférieure, ou peut-il aussi bien s'interrompre sur la valeur suivante (peut-être que ça dépend de l'implémentation ?) ?

Et si vous n'avez pas trop la flemme d'expliquer : Pourquoi ?

Merci top
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

2

Tout depend du nombre diteration sur ta dichotomie..
tu peux tres bien t'arretter sur la valeur qui minore tout comme la suivante sur la majoration..
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

3

Cela depend aussi de l'implémentation: cela depend si comme nouvelle borne (inférieure ou supérieure selon l'itération) tu prends la partie entiere de (BorneSup - BorneInf) ou celle de partie entiere de ((BorneSup - BorneInf) + 1); Les deux fonctionnent normalement. magic
La programmation est un art... Ne prétendons pas en être des virtuoses mais tout au plus des adeptes...
ASM Rulez!!

4

Merci à vous donc à la fin de la dicho je n'ai pas d'autre choix que de "descendre" dans la liste tant que n'est pas trouvé un élément inférieur sick
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

5

oué, et c pas forcement plus rapide qu'un pourcour linéaire optimisé ...
:D

6

La dicho est toujours plus rapide dans les grandes listes pencil
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

7

pour moi la recherche dichotomique c'est ça :
int recherche(int *tab, int n)
{
   int inf, sup, mid, trouve;

  inf = 0;
  sup = n;
  trouve = false;
  while (inf < sup && trouve == false) {
    mid = (inf + sup) / 2;
    if (valeur < tab[mid])
      sup = mid;
    else if (valeur > tab[mid])
      inf = mid + 1;
    else
      trouve = true;
  }
  return trouve
}


le nombre d'itérations est majoré par : sup( ln(n) / ln(2) )
sup étant l'arrondi à la valeur entière supérieure

8

Thibaut a écrit :
La dicho est toujours plus rapide dans les grandes listes pencil

Ça dépend de ce que tu appelles "liste". Pour de grands tableaux, oui. Pour de grandes listes chaînées, il me semble bien que non! Tu parcours ta liste chaînée plein de fois si tu essayes de faire de la dichotomie avec des listes chaîneées.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

C'est évident Kevin, même le plus idiot des programmeurs peut le deviner. Halàlà ce Kevin roll


jcop : oui c'est ça.
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

10

a mon avis si on veut faire une liste dans laquelle il y auras beaucoup de recherche il vaut mieux utiliser un tableau normal !
Plus tu pedale moins vite moins t'avance plus vite
Ma team CS

11

surtout que les listes chainées, sur TI... vu le peu de handle qu'il y a...
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

12

C'est quoi ce que tu appelles un tableau normal ? (je crains que tu ne répètes Kevin gol)
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

13

int tab[N];

en gros smile
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

14

Oué ben il n'a fait que répéter Kevin picol
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

15

pour les listes chainées, on peut utiliser genalib qui premet de gerer plein de petits blocs memoire smile (avec 1 seul handle)