Accueil > > > ALGORITHME DE RECHERCHE DICHOTOMIQUE
ALGORITHME DE RECHERCHE DICHOTOMIQUE
Information sur la source
Description
Bonjour, Voila, beaucoup sur ce site cherche souvent des méthodes pour recherche une variable dans un tableau ou autre. Je me susi dit pourquoi pas mettre cet algorithme bien pratique et surtout TRES éfficace; Ici il est programmer pour la recherche d'un entier dans un tableau. La fonction de test est aussi programée. Il n'y a pas de commentaire car le code est simple. Mais si il y à quand mm des questions, n'hésité pas. ++All
Source
- #include "entete.h"
-
-
-
-
-
- int rechDich (int D_intt[], int D_intvaleurRecherchee, int D_intborneInf, int D_intborneSup)
- {
-
- int D_intmilieu; /* milieu */
- /*int x; valeur de la borne du milieu (facultatif) */
-
- if (D_intborneSup<D_intborneInf)
- {
- return -1;
- }
- else
- {
- D_intmilieu = ((D_intborneInf + D_intborneSup)/2);
- /*x = t[milieu]; (facultatif)*/
- if (D_intvaleurRecherchee==D_intt[D_intmilieu])
- {
- return D_intmilieu;
- }
-
- else
- {
- if (D_intvaleurRecherchee<D_intt[D_intmilieu])
- {
- return(rechDich(D_intt,D_intvaleurRecherchee,D_intborneInf,D_intmilieu-1));
- }
- else
- {
- return(rechDich(D_intt,D_intvaleurRecherchee,D_intmilieu+1, D_intborneSup));
- }
-
- }
- }
- }
-
-
- void main()
- {
-
- short int D_intchoix = -1, test = 0;
- int D_intt[15]={-2,0,1,2,5,9,11,45,56,100,101,205,236,360,1001};
- int D_intborneInf = 0;
- int D_intborneSup =14;
- int D_intvaleurRecherchee;
- char D_chrep='o';
-
- do
- {
- D_intborneSup = 14;
- clrscr();
- textcolor(4);
- cprintf("\n Tableau paire ou impaire? (1/2) :");scanf ("%d", &D_intchoix);
- if (D_intchoix==2)
- {
- D_intborneSup -= 1;
- }
- if (D_intchoix <= 2)
- {
- textcolor(4);
- cprintf("\nintroduisez une valeur a rechercher :"); scanf ("%d",&D_intvaleurRecherchee);
- if (rechDich (D_intt,D_intvaleurRecherchee,D_intborneInf,D_intborneSup) == -1)
- {
- textcolor(1);
- cprintf("\n\n\t\a !! La valeur ne se trouve pas dans le tableau !!");
- }
- else
- {
- textcolor(2);
- printf("\n\n\tindice de la valeur dans le tableau : %d" , rechDich(D_intt,D_intvaleurRecherchee,D_intborneInf,D_intborneSup));
- }
- textcolor(4);
- fflush(stdin);
- printf("\n\n voulez-vous introduire une nouvelle valeur? (o/n) :");scanf("%c", &D_chrep);
- }
- else
- {
- textcolor(1);
- cprintf("\n\t!! vous avez introduit un choix non conforme !!");
- getch();
- D_chrep='o';
- }
-
- }while (D_chrep=='o');
- }
#include "entete.h"
int rechDich (int D_intt[], int D_intvaleurRecherchee, int D_intborneInf, int D_intborneSup)
{
int D_intmilieu; /* milieu */
/*int x; valeur de la borne du milieu (facultatif) */
if (D_intborneSup<D_intborneInf)
{
return -1;
}
else
{
D_intmilieu = ((D_intborneInf + D_intborneSup)/2);
/*x = t[milieu]; (facultatif)*/
if (D_intvaleurRecherchee==D_intt[D_intmilieu])
{
return D_intmilieu;
}
else
{
if (D_intvaleurRecherchee<D_intt[D_intmilieu])
{
return(rechDich(D_intt,D_intvaleurRecherchee,D_intborneInf,D_intmilieu-1));
}
else
{
return(rechDich(D_intt,D_intvaleurRecherchee,D_intmilieu+1, D_intborneSup));
}
}
}
}
void main()
{
short int D_intchoix = -1, test = 0;
int D_intt[15]={-2,0,1,2,5,9,11,45,56,100,101,205,236,360,1001};
int D_intborneInf = 0;
int D_intborneSup =14;
int D_intvaleurRecherchee;
char D_chrep='o';
do
{
D_intborneSup = 14;
clrscr();
textcolor(4);
cprintf("\n Tableau paire ou impaire? (1/2) :");scanf ("%d", &D_intchoix);
if (D_intchoix==2)
{
D_intborneSup -= 1;
}
if (D_intchoix <= 2)
{
textcolor(4);
cprintf("\nintroduisez une valeur a rechercher :"); scanf ("%d",&D_intvaleurRecherchee);
if (rechDich (D_intt,D_intvaleurRecherchee,D_intborneInf,D_intborneSup) == -1)
{
textcolor(1);
cprintf("\n\n\t\a !! La valeur ne se trouve pas dans le tableau !!");
}
else
{
textcolor(2);
printf("\n\n\tindice de la valeur dans le tableau : %d" , rechDich(D_intt,D_intvaleurRecherchee,D_intborneInf,D_intborneSup));
}
textcolor(4);
fflush(stdin);
printf("\n\n voulez-vous introduire une nouvelle valeur? (o/n) :");scanf("%c", &D_chrep);
}
else
{
textcolor(1);
cprintf("\n\t!! vous avez introduit un choix non conforme !!");
getch();
D_chrep='o';
}
}while (D_chrep=='o');
}
Conclusion
Ya t-il des questions? ;)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
recherche dichotomique [ par aketostar ]
AKETOSTARSalut, c'est la première fois que j'écris ici.je recherche le code source de la recherche dichotomique de tableau d'entiers trié en ordre cro
recherche de l'algo pour faire un keygen [ par daru ]
salut !je voulais savoir si a partir d'un nombre de serials d'un seul soft on peut deviner l'algorthme que le soft a utilisé pour les generer ,si oui
recherche d'un code ou de l'algorithme [ par mohamedbzeouich ]
je veux un programme ecrit en c qui peut generer des vaariable aléatoire suivant la loi normale (gaussienne)
Recherche algo de la fonction ulltoa() [ par akboy7015 ]
Actuellement, je développe sur VC7 et je travail beaucoup avec des __int64. Le problème est que la fonction ulltoa() n'a pas l'air d'exister.Bien ente
recherche d'un algorithme [ par boumarsel ]
J’explique mon problème par un petit exemple Imaginons un menuisier qui doit fabriquer plusieurs cadres de fenêtres avec des tailles d
Recherche D'1 algorithme en langage C [ par mooch ]
je cherche 1 algorithme en C de la FFT(fonction de transfert de Fourier
Recherche sur l'algorithme de Hough [ par luke63 ]
Bonjour,Je recherche de la documentation et des sources en C++ sur l'algorithme de Hough pour détecter des lignes dans une image bitmap apr&
HELP !!!! Algorithme de recherche d'occurence dans une chaine [ par ratp ]
hello, je souhaiterai créer une fonction en C ANSI qui permet de rechercher et d'afficher le nombre d'occurences dans une chaine jusqu'as '\0' .
Bellman Kalaba Simplifié en C [ par sanka113 ]
Bonjour,Je suis étudiant en 2ème informatique et je me retrouve face à un dilemme en recherche opérationel.Nous avons un exercice qui consiste à prog
Recherche : Algorithme Matrice d'Adjacence -> Dessin du graphe [ par olafleur ]
Bonjour, je suis à la recherche d'un algorithme qui me permettrait de prendre la matrice d'adjacence d'un graphe et de dessiner celui-ci. Quelqu'un a
|
Derniers Blogs
COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|