luizaspan icon

Pesquisa binária

luizaspan | PRO | 06/02/15 02:51:14 PM UTC | 0 ⭐ | 911 👁️ | Never ⏰ | []
C |

1.14 KB

|

None

|

0 👍

/

0 👎

#include <stdio.h>
#include <stdlib.h> // rand() ou random()
#include <time.h> 
 
#define n 100
 
// ordenando o vetor com o algoritmo bubblesort
 
int main(void)
{
  int i,a[n],j,temp;
 
  // gerando nova sequencia de numeros aleatórios:
  srand(time(0));
     
  for (i=0;i<n;i++)
    {
      a[i]=rand()%n +1;
      a[i]=(double) rand()/RAND_MAX*n;
 
      // printf("%d \n",a[i]);      
    }
 
  for (i=0;i<n-1;i++)
    {
      for(j=n-1;j>i;j--)
    {
      if (a[j-1] > a[j])
        {
          temp=a[j-1];
          a[j-1]=a[j];
          a[j]=temp;
        }
    }
    }
 
  for (i=0;i<n;i++)
    printf("%d \n",a[i]); 
 
  // PROCURANDO TAL VALOR:
 
  int fim=n-1,inicio=0,meio;
  int alvo=52,achou=0; // quero achar a posição do número 52
 
  do
    {
      meio=(int) (fim+inicio)/2;
      if (a[meio] == alvo)
    achou=1;
      else if (a[meio] < alvo)
    inicio=meio+1;
      else 
    fim=meio-1;
    }  while (achou==0 && inicio <=fim);
    
  if (achou==1)
    printf("O número %d foi encontrado na posição %d. \n",a[meio],meio);
  else 
    printf("O número procurado não foi encontrado. \n");
    
  return 0;
}

Comments