begin process at 2012 05 27 13:25:36
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > ALGO GÉNÉRAL DE RECHERCHE DICHOTOMIQUE APRÈS UN TRIE BUBBLE SORT

ALGO GÉNÉRAL DE RECHERCHE DICHOTOMIQUE APRÈS UN TRIE BUBBLE SORT


 Information sur la source

Note :
Aucune note
Catégorie :Astuces Classé sous :recherche, algo, dichotomique, sort, buble Niveau :Débutant Date de création :21/09/2005 Date de mise à jour :22/09/2005 01:23:54 Vu :13 383

Auteur : sbeuz

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Le code suivant (écrit en C++) effectue dans un premier temps le Trie Bubble Sort d'un tableau. Par la suite une Recherche Dichotomique (Code en Algo) vient compléter le tout.

Lors d'une recherche Dichotomique la borne supérieure ou inférieure du tableau est modifiée.
Par conséquent, le tableau n'est plus parcouru dans son ensemble, la Recherche en est d'autant Plus Rapide.

Note: Le trie Bubble Sort n'est pas le plus optimisé...  

Source

  • //Librairies
  • #include...
  • //Variables globales
  • typedef struct
  • { char nom_ville[32];
  • char nom[32];
  • char tel[11];
  • }Tindex;
  • Tindex idx[Max];
  • int j;
  • /* Trie Bubble Sort - Création d'un Index trié
  • en fonction des numéros de téléphones */
  • void tri_tel_index()
  • {int k;
  • Tindex temp[Max];
  • for(k=Max-1;k!=0;k--)
  • { for(j=0;j<k;j++)
  • { if((strcmp(idx[j].tel,idx[j+1].tel))>0)
  • { temp[0]=idx[j];
  • idx[j]=idx[j+1];
  • idx[j+1]=temp[0];
  • }
  • }
  • }
  • j=0;
  • }
  • //Prog. principal
  • void main() {
  • ...
  • }
  • Algo Général de la Recherche Dichotomique
  • Procedure recherche_dichotomique(par val ent elt, par val ent N, par val ent T[])
  • Debut
  • |
  • | var inf, sup, m;
  • | inf <- 1;
  • | sup <- N;
  • | m <- (inf+sup) div 2;
  • | /* en C++ m = (int)((inf+sup)/2) */
  • |
  • | /* Ici l'astuce : la borne supérieure ou inférieure est modifiée,
  • | le tableau n'est plus parcouru dans son ensemble */
  • |
  • |
  • | Tant que (T[m] != elt et inf < sup) faire
  • | |
  • | | Si (elt < T[m]) alors
  • | | |
  • | | | sup <- m - 1;
  • | | |
  • | | | Sinon inf <- m + 1;
  • | | |
  • | | Fin Si
  • | |
  • | | m <- (inf + sup) div 2;
  • | |
  • | Fin Tque
  • |
  • | Si (T[m] = elt)
  • | |
  • | | Afficher("L'element se trouve à l'indice m")
  • | |
  • | | Sinon Afficher ("L' élément n'existe pas ")
  • | |
  • | Fin Si
  • |
  • Fin
//Librairies
#include...

//Variables globales
typedef struct
{ char nom_ville[32];
  char nom[32];
  char tel[11];
}Tindex;

Tindex idx[Max];
int j;

/* Trie Bubble Sort - Création d'un Index trié
     en fonction des numéros de téléphones */

void tri_tel_index()
{int k;
Tindex temp[Max];
   for(k=Max-1;k!=0;k--)
   { for(j=0;j<k;j++)
     {   if((strcmp(idx[j].tel,idx[j+1].tel))>0)
          {  temp[0]=idx[j];
            idx[j]=idx[j+1];
            idx[j+1]=temp[0];
            }
       }
    }
j=0;
}

//Prog. principal
void main() {
...
}

Algo Général de la Recherche Dichotomique 

Procedure recherche_dichotomique(par val ent elt, par val ent N, par val ent T[])
Debut
|
|     var inf, sup, m;
|     inf <- 1;
|     sup <- N;
|     m <- (inf+sup) div 2;  
|  /* en C++ m = (int)((inf+sup)/2) */
|                          
|  /* Ici l'astuce : la borne supérieure ou inférieure est modifiée,
|     le tableau n'est plus parcouru dans son ensemble */
| 
|                                  
|    Tant que (T[m] != elt et inf < sup) faire
|    |  
|    |   Si (elt < T[m]) alors 
|    |   | 
|    |   |   sup <- m - 1;
|    |   |
|    |   |   Sinon inf <- m + 1;
|    |   |
|    |   Fin Si
|    |
|    |   m <- (inf + sup) div 2; 
|    | 
|    Fin Tque
|
|    Si (T[m] = elt)
|    |
|    |  Afficher("L'element se trouve à l'indice m") 
|    | 
|    |  Sinon Afficher ("L' élément n'existe pas ")
|    |   
|    Fin Si
|
Fin


 Conclusion

Attention : "La Recherche Dichotomique s'effectue toujours sur un Tableau Trié."


 Historique

22 septembre 2005 01:12:20 :
Mise à jour : Algorithme Général de Recherche Dichotomique.
22 septembre 2005 01:21:24 :
Mise à jour Algorithme Général pour un Recherche Dichotomique.
22 septembre 2005 01:23:54 :
Mise à jour Algorithme Général de Recherche Dichotomique.

 Sources du même auteur

Source avec Zip Source avec une capture ALLOCATION DYNAMIQUE DE LA MEMOIRE, LISTES ET POINTEURS, LA...
Source avec une capture CLASSES ET OBJETS EN C++

 Sources de la même categorie

Source avec Zip SCHEDULER RR FIFO par yvesB87
Source avec Zip ALGORITHMES RÉCURSIFS VS ALGORITHMES ITÉRATIFS par yvesB87
Source avec Zip Source avec une capture C++ FORMAT D'IMAGE AVEC QT par pop70
Source avec une capture EXEMPLE DE POINTEURS DE FONCTION par pop70
Source avec Zip Source avec une capture [C++] CLASS REGISTER par Miwik

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel
Source avec Zip Source avec une capture BEAT DETECTION par barsichou
Source avec Zip Source avec une capture JEUX DU MORPION EN CONSOLE par thebroyeur
Source avec Zip Source avec une capture RECHERCHE OPERATIONNELLE : ALGORITHME DU SIMPLEXE par susur2002
Source avec Zip ALGORITHME DE RECHERCHE DICHOTOMIQUE par deck_bsd

Commentaires et avis

Commentaire de tokaido6 le 02/10/2008 14:25:32

Slt sbeuz,
bravoo pour cet algo, il m'a permis de faire ma recherche dichotomique en c# du premier coup sans bugger.
Merci.

Commentaire de uesgui le 13/12/2008 11:58:33

Bonjour,
Je suis tout nouveau ici et
J'essaye d'utiliser cet algorithme pour faire une recherche en maths mais j'ai un bug avec Dev C++ a la ligne Tindex idx[Max];
Pourquoi ? Que Faire ?
Merci à vous si vous avez une idée

Commentaire de lafamille le 27/01/2010 09:46:43

bonjour!!
je me demande a quoi correspond elt et N de l'algo par rapport au tri a bulle du dessus ???
merci a vous

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

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 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 de nom d'algo [ par deathness ] Bonjour, dans le cadre d'un travail, je dois trouver un algorithme qui relie entre eux des composants. Mettons que j'ai deux composant AB au milieu d 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 objet calendrier hebdomadaire [ par laglisse ] Je recherche un objet graphique pour VCplusplus assimilable a une grille regroupant toutes les heures de la semaine et permettant d'un simple glisseme recherche d'info dans une ligne d'un fichier [ par GazGaz ] lu all je voudrait savoir si je pouvai faire un recherche dans un fichier, d'un mot ou groupe de mots spécifiques ? genre j'ai une ligne et dans celle AU SECOUR !!! Recherche sources othello d'urgence [ par merryl ] bouc_sindinQui pourrais me donner les sources de l'othello en pASCAL ou simplement les algo d'urgence...SVPbouc_sindin@voila.fr recherche parseur pour fichier .obj [ par david666 ] Bonjour,je suis à la recherche d'un parseur de fichier .obj qui fonctionne sous GLUT.Merci. RECHERCHE UN PROGRAMMATEUR C++ POUR P'TIT PROGRAMME [ par easyweb ] Salut à tous,Je recherche un programmateur sachant manier le C++ et qui pourrait me réaliser un p'tit prog, je ne donne pas plus d'info pour l'instant recherche de doc sur ICQ [ par zinotron ] c pour coder un client ICQ comme on peut coder des clients IRC mais je ne sais po comment fonctionne ICQmerci tt le peupleA+


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,967 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales