Advertisement
luizaspan

Pesquisa binária

Jun 2nd, 2015
519
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h> // rand() ou random()
  3. #include <time.h>
  4.  
  5. #define n 100
  6.  
  7. // ordenando o vetor com o algoritmo bubblesort
  8.  
  9. int main(void)
  10. {
  11.   int i,a[n],j,temp;
  12.  
  13.   // gerando nova sequencia de numeros aleatórios:
  14.   srand(time(0));
  15.      
  16.   for (i=0;i<n;i++)
  17.     {
  18.       a[i]=rand()%n +1;
  19.       a[i]=(double) rand()/RAND_MAX*n;
  20.  
  21.       // printf("%d \n",a[i]);      
  22.     }
  23.  
  24.   for (i=0;i<n-1;i++)
  25.     {
  26.       for(j=n-1;j>i;j--)
  27.     {
  28.       if (a[j-1] > a[j])
  29.         {
  30.           temp=a[j-1];
  31.           a[j-1]=a[j];
  32.           a[j]=temp;
  33.         }
  34.     }
  35.     }
  36.  
  37.   for (i=0;i<n;i++)
  38.     printf("%d \n",a[i]);
  39.  
  40.   // PROCURANDO TAL VALOR:
  41.  
  42.   int fim=n-1,inicio=0,meio;
  43.   int alvo=52,achou=0; // quero achar a posição do número 52
  44.  
  45.   do
  46.     {
  47.       meio=(int) (fim+inicio)/2;
  48.       if (a[meio] == alvo)
  49.     achou=1;
  50.       else if (a[meio] < alvo)
  51.     inicio=meio+1;
  52.       else
  53.     fim=meio-1;
  54.     }  while (achou==0 && inicio <=fim);
  55.    
  56.   if (achou==1)
  57.     printf("O número %d foi encontrado na posição %d. \n",a[meio],meio);
  58.   else
  59.     printf("O número procurado não foi encontrado. \n");
  60.    
  61.   return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement