Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [C] aiuto su algoritmo di ricerca binaria

    ragazzi ho questa pseudocodifica ma di cui nn ciò capito una mazza vi va ri aiutarmi a ragionare?

    codice:
    Assegna a trovato il valore 0
    Inizializza gli estremi dell’intervallo di ricerca –inf esup
    
    While (inf <=sup) and (not trovato)
       
       Calcola la posizione centrale
             m=Parte intera[(inf+sup)/2]
           If x > A[m]
             assegna a inf il valore m+1
           Else If x < A[m]
             assegna a sup il valore m-1
           Else assegna a trovato il valore 1
    le variabili inf e sup cm le devo utilizzare?
    cosa dovrei avere come risultato del programma? trovato = si o no ?

  2. #2
    vabbè nel frattempo lo codificato senza capirci molto:

    codice:
    #include <stdio.h>
    #define dim 15
    
    int main(){
        
        int a[dim] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
        int n, i, inf, sup, trovato;
        
        printf("inserire valore da cercare = ");
        scanf("%d", &n);
        
        
        inf=0;
        sup=0;
        trovato=0;
        
        while(inf<=sup && trovato==0){
              i=dim/2;
              if(n>a[i])
              inf=i+1;
              else if (n<a[i])
              sup=i-1;
              trovato=1;
              }
        
        
        printf("%d\n", trovato);
    
        system ("pause");
        return 0;
    }
    ma non mi funziona posso dargli in input un qualsiasi valore anche 100000 mi restitusce sempre 1...

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Perchè

    sup=0;
    ... sup deve essere 15 inizialmente

    Era questa

    i=dim/2;
    l'operazione nello pseudocodice ? Non mi pare ...

    if(n>a[i])
    inf=i+1;
    else if (n<a[i])
    sup=i-1;
    qui mi sembra ci fosse un else ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    oregon mio salvatore continuo a fare errore del caxxo......sono quasi alla frutta.....comunque ora funziona grazie ancora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.