Accueil > Forum > > > > Recherche dans un array (binary search)
Recherche dans un array (binary search)
mardi 3 octobre 2006 à 02:21:11 |
Recherche dans un array (binary search)

mast
|
Bonjour! J'ai une array qui contient des prénoms, qui s'appelle x et une autre qui contient un nom seulement (name). J'ai écrit une function de "binary search" qui cherche si name se trouve dans l'array x. Pour une raison que j'ignore ça ne fonctionne qu'avec quelque noms. Note, mon array de prénoms, x, est en ordre alphabétique. Voici mon code, si vous avez des idées laissez-moi un message :) Merci! - Alex ------------- int BSearch(char x[][NMAX], char name[]) { int left, right, mid; left = 0; right = LSIZE; while (left < right) { mid = (left+right) / 2; if (strcmp(name, x[mid]) > 0) { left = mid + 1; } else if (strcmp(name, x[mid]) < 0) { right = mid - 1; } else { return mid + 1; } } return -1; }
|
|
mardi 3 octobre 2006 à 02:40:15 |
Re : Recherche dans un array (binary search)

mast
|
Okay je viens de voir que le code était pas très clair ;) alors je post un url vers la source http://paste.lisp.org/display/27246
- Alex
|
|
mardi 3 octobre 2006 à 17:54:26 |
Re : Recherche dans un array (binary search)

ria94
|
Je pense ke l'erreur viens de la ligne mid = (left+right) / 2; Je t'explique vite fait imaginons t'as un tableau de 100noms Dans ton premier tour de boucle tu prend mid=(0+100)/2= 50 mettons que le noms soit dans la partie superieur tu vas donc faire left = mid + 1; -->left = 50+1=51 tu repasses dans ta boucle et tu refais un mid = (left+right) / 2; --> (51+100)/2 = 75.5 Donc forcement tu check pa tous les cas
Essaie ca :
int BSearch(char x[][NMAX], char name[]) { int left, right, mid; left = 0; right = LSIZE; mid = (left+right) / 2;
while(left < right) { if(strcmp(name, x[mid]) > 0) { mid++; } elseif(strcmp(name, x[mid]) < 0) { mid--; } else } return mid + 1; } leff++; } return -1; }
|
|
mardi 3 octobre 2006 à 18:56:40 |
Re : Recherche dans un array (binary search)

mast
|
J'ai trouve l'erreur hier, la boucle while aurait du etre while (left <= right), sinon on saute le dernier cas ;)
Merci - Alex
|
|
Cette discussion est classée dans : mid, array, name, left, binary
Répondre à ce message
Sujets en rapport avec ce message
Equivalent de left() right() et mid() en c++ [ par guitoulefoux ]
Bonjour,Débutant en c++ j'aimerais savoir quel est l'équivalent de left(), right(), et mid() (vb) en c++.Je pense qu'en C++ il faut faire un truc du s
Cas d'école... [ par ClemB ]
Bonjour, J'ai le soucis suivant dans le code ci après :typedef struct { const char *Name; ... ...} TOTO;bool AAA (TOTO *retour){ CString sTest =
Ecrire en c++ avec regsetvalue dans une reg_binary ? [ par Krad ]
Bonjour,Je sais écrire des caractères dans des cles de registre avec la fonction regsetvalue mais je n'arrive pas à écrire de valeur en hexadécimal da
socket winsock grrr [ par dekai ]
Voilà mon pb lorsque je tente un send ou recv j'obtient une erreur et ej comprends pas pourquoi. Merci de m'aider.Voici le code (je travaille sous dev
C++ dialog box right to left [ par petro666 ]
bonjour j'aimerais avoir un petit renseignement concernant les dialog boxj'ai un code en C++ qui contient des dialog box et qui génère des dllle probl
Visual C++ et lecture de fichier [ par xakal ]
J'ai des problemes avec les fichiers et C++.Plus exactement Visual C++, ce que je cherche a faire c?est de lire un fichier et l?afficher ligne a ligne
Probleme Hostname Visual C++ [ par Steph115 ]
Salut a tous voila j'ai vu que la fonction gethostbyname defini comme suit : This function gets host data corresponding to a host name.struct hostent
Comment lire un Char array ligne par ligne et le modifier? [ par fcoutel ]
Bonjour!J'ai cree un char array dans un autre program qui contient des info "encryptees" static char tcl_script[] = "«¨íðéåøäí¦üã\n" "«¨Ìíåçæûüúéüíû¨
unicode et bianire help!!!! [ par youpiyoyo ]
bon j'ai visité cette page d'abord:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_unicode.99_.stream_i.2f.o_in_text_
tableau de chaines [ par ashboody ]
const char * Ini_GetPrivateProfileString (...);mytype myfunc (char **RegisteredChannels_Name);{strcpy( RegisteredChannels_Name[ChannelIndex],
Livres en rapport
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit 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
Forum
TRADAIONTRADAION par shootangel
Cliquez pour lire la suite par shootangel
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
|