Ricerca Binaria
Leggere n valori di un vettore di 10 elementi e poi applicare la ricerca binaria
Ho fatto fin qua ma poi non so continuare
Non so come fare l'inserimento ordinato di x.
Sapreste chiarirmi le idee?
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
#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.
Grazie 1000.