Ricerca Binaria

Sk_Anonymous
Leggere n valori di un vettore di 10 elementi e poi applicare la ricerca binaria
Ho fatto fin qua ma poi non so continuare

#include <stdio.h>
int main (){
int A[10],n,p,i,x,conta,inf,sup,med;
/*inserimento*/
printf("Quanti elementi?\n");
scanf("%d",&n);
for (conta=0;conta<n;conta++) 
{
/*inserimento ordinato di x*/
}
/*ricerca binaria*/
printf("Quanti elementi?\n");
scanf("%d",&x);
inf=0;
sup=n-1;
while(inf<=sup){
med=(inf+sup)/2;
if(A[med]==x)
break;
else if (A[med]<x)
inf=med+1;
else sup=med-1;
}
if(inf<=sup)
printf("Trovato in posizione:%d",med);
else printf("Non trovato")
}


Non so come fare l'inserimento ordinato di x.
Sapreste chiarirmi le idee?

Risposte
Nidhogg
#include <stdio.h>
#define N 10
int main()
{
   int i, n, dim;
   int A[N];
   dim = 0; /* dimensione logica del vettore */
   for (i=0; i<N; i++) 
      {
         printf(“Inserisci un valore: “);
         scanf(“%d”, &n);
         /* cerco la posizione del primo elemento dell'array maggiore di n */
         j = 0;
         while (j<dim && n > A[j])
            j++;
          /* creo lo spazio per inserire l’elemento n in posizione j */
         for (k=dim; k>j; k--)
            A[k] = A[k-1];
         /* inserisco l’elemento  n */
         A[j] = n;
         dim++; /* aumento la dimensione logica del vettore di uno */
      }
}


Saluti, Ermanno.

Sk_Anonymous
Grazie 1000.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.