Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #define TF 10
- void imprimeVetor(int * vet, int posicaoMeio, int comeco, int fim);
- int buscaBinaria(int * vet, int numElementos, int elemento);
- int main()
- {
- int i, vet[TF], ele, tl = 0, pos, res;
- printf("Digite um numero:\n");
- scanf("%d", &ele);
- while(tl < TF && ele > 0)
- {
- pos = 0;
- while(pos < tl && ele > vet[pos])
- pos++;
- for(i = tl; i > pos; i--)
- vet[i] = vet[i - 1];
- vet[pos] = ele;
- tl++;
- if(tl < TF)
- {
- printf("Digite um numero:\n");
- scanf("%d", &ele);
- }
- }
- printf("Digite o elemento:\n");
- scanf("%d", &ele);
- res = buscaBinaria(vet, tl, ele);
- if(res == -1)
- printf("Elemento inexistente\n");
- else
- printf("Elemento na posicao %d\n", ele);
- getch();
- }
- void imprimeVetor(int * vet, int posicaoMeio, int comeco, int fim)
- {
- int i;
- for(i = 0; i < TF; i++)
- {
- if(i < comeco || i > fim)
- printf(" ");
- else
- {
- if(i == posicaoMeio)
- printf("%3d*", vet[i]);
- else
- printf("%3d", vet[i]);
- }
- }
- printf("\n");
- }
- int buscaBinaria(int * vet, int numElementos, int elemento)
- {
- int inicio, fim, meio;
- inicio = 0;
- fim = numElementos - 1;
- while(inicio <= fim)
- {
- meio = (inicio + fim) / 2;
- imprimeVetor(vet, meio, inicio, fim);
- if(vet[meio] == elemento)
- return meio;
- else if(vet[meio] < elemento)
- inicio = meio + 1;
- else if(vet[meio] > elemento)
- fim = meio - 1;
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement