Probleme dans la recherche dichotomique
yedez
Messages postés
69
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je dois faire une recherche dichotomique dans un tableau pour chercher la valeur x et renvoyer son occurence le probleme C'est que ma foncyion compile seulement si la taille de tableau ne depasse pas 4 !!!! Son 2 eme probleme C'est que l'occurence de la 1ere valeur de tableau est toujours 0!!!!
voila mon code
int seek_valeurs(int t[],int n,int v)
{
int deb,fin,m,k;
k=0;
deb=0;
fin=n;
m=(deb+fin)/2;
while (deb<fin)
{
if (t[m]>v)
{
fin=m-1;
m=(deb+fin)/2;
}
else if (t[m]<v)
{
deb=m+1;
m=(deb+fin)/2;
}
else
{k=k+1;
m=m+1;
}
}
return (k);
}
je serais reconnaissante si vous pouvez m'aider :))
je dois faire une recherche dichotomique dans un tableau pour chercher la valeur x et renvoyer son occurence le probleme C'est que ma foncyion compile seulement si la taille de tableau ne depasse pas 4 !!!! Son 2 eme probleme C'est que l'occurence de la 1ere valeur de tableau est toujours 0!!!!
voila mon code
int seek_valeurs(int t[],int n,int v)
{
int deb,fin,m,k;
k=0;
deb=0;
fin=n;
m=(deb+fin)/2;
while (deb<fin)
{
if (t[m]>v)
{
fin=m-1;
m=(deb+fin)/2;
}
else if (t[m]<v)
{
deb=m+1;
m=(deb+fin)/2;
}
else
{k=k+1;
m=m+1;
}
}
return (k);
}
je serais reconnaissante si vous pouvez m'aider :))
A voir également:
- Probleme dans la recherche dichotomique
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche photo - Guide
- Je recherche une chanson - Guide
- Probleme recherche chaine tv tcl - Forum Box et Streaming vidéo
2 réponses
SLt je suis parvenue a savoir ma faute et j ai change mon code mai toujours pas de compilation :(
pouvez vous m'aider
int deb,fin,m,k,test,p;
k=1;
p=0;
deb=0;
fin=n-1;
test=0;
m=(deb+fin) / 2;
while ((deb<=fin)&&(test=0))
{
if (t[m]>v)
{
fin=m-1;
m=(deb+fin) /2;
test=0;
}
else if (t[m]<v)
{
deb=m+1;
m=(deb+fin)/2;
test=0;
}
else
{
test=1;
p=m;
}
}
deb=1;
fin=n-1;
while ((test=1)&&(deb<fin))
{
if (t[p]==t[p+deb])
{
k=k+1;
deb=deb+1;
}
}
return (k);
}
pouvez vous m'aider
int deb,fin,m,k,test,p;
k=1;
p=0;
deb=0;
fin=n-1;
test=0;
m=(deb+fin) / 2;
while ((deb<=fin)&&(test=0))
{
if (t[m]>v)
{
fin=m-1;
m=(deb+fin) /2;
test=0;
}
else if (t[m]<v)
{
deb=m+1;
m=(deb+fin)/2;
test=0;
}
else
{
test=1;
p=m;
}
}
deb=1;
fin=n-1;
while ((test=1)&&(deb<fin))
{
if (t[p]==t[p+deb])
{
k=k+1;
deb=deb+1;
}
}
return (k);
}