2009-08-28 6 views
-5

possible en double:
Ternary search in CComment implémenter la recherche ternaire en C?

programme d'écriture tertiaire de recherche [ternaire]. Remarques: La recherche tertiaire est similaire à la recherche binaire. Dans la recherche binaire, nous considérons deux parties du tableau et sélectionnons une partie comme espace de recherche suivant. Dans la recherche tertiaire, nous considérons le tableau en 3 parties égales. Pour cela, nous prenons deux indices "middle", middle1 et middle2 respectivement à 1/3 et 2/3 du tableau. Ensuite, nous sélectionnons l'une des 3 parties et poursuivons la recherche dans celle-ci.

En outre, comment puis-je trouver la complexité temporelle de la recherche ternaire dans le pire des cas?

Ma tentative:

#include<stdio.h> 
#include<conio.h> 
void tsearch(int *a,int i,int j,int k); 
main() { 
    int a[30],n,i,k; 
     printf("\nEnter n:"); 
    scanf("%d",&n); 
    printf("\nEnter nos in ascending order:"); 
    for(i=0;i<n;i++) 
     scanf("%d",&a[i]); 
    printf("Enter no to search:"); 
    scanf("%d",&k); 
    tsearch(a,0,n-1,k); 

    getch(); 
} 

void tsearch(int *a,int i,int j,int k) { 
    int m1,m2; 
    m1=(i+j)/3; 
    m2=2*(i+j)/3; 
    if(k==a[m1]) 
    { 
    printf("\nno found at %d",m1); 
    return; 
    } 
    else if(k==a[m2]) 
    { 
    printf("\nno found at %d",m2); 
    return; 
    } 
    if(k<a[m1]) 
    return(tsearch(a,i,m1-1,k)); 
    if(k>a[m2]) 
    return(tsearch(a,m2+1,j,k)); 
    else 
    return(tsearch(a,m1+1,m2-1,k)); 
} 


*** 

Il se termine si le numéro à rechercher est présent dans l'un des derniers endroits 2-3 (de tableau). Où ai-je commis l'erreur?

+1

"recherche ternaires" peut donner de meilleurs résultats. –

+4

"plz envoyer le codez !! 1" - pas d'accord sur SO. Votre question la plus spécifique concerne la complexité du temps le plus défavorable. Avez-vous également à mettre en œuvre une recherche tertiaire? Sur quoi ça marche? Essayez de poser des questions * spécifiques * sur la façon de le mettre en œuvre. –

+0

oui..je veux mettre en œuvre le programme de recherche tertiaire pour les entiers !! & je veux connaître la complexité du temps de ce programme pour le pire des cas ... –

Répondre

Questions connexes