Código de C/Visual C - Busqueda binaria en un array

Busqueda binaria en un arraygráfica de visualizaciones


C/Visual C

Publicado el 14 de Enero del 2003 por Sebastian
13.090 visualizaciones desde el 14 de Enero del 2003. Una media de 21 por semana
Busqueda binaria en un array.

Versión 1

Publicado el 14 de Enero del 2003gráfica de visualizaciones de la versión: Versión 1
13.091 visualizaciones desde el 14 de Enero del 2003. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*Id. programa: Busqueda2                                                     */
/*Autor: Nieva, Sebastian                                                     */
/*Fecha de creacion: 19/03/02                                                 */
/*Fecha de ultima modificacion: 27/03/02                                      */
/*Tarea: Invierte palabras de una frase													*/
/*Version: 1.0                                                                */
/*Lenguaje: ANSI C                                                            */
/*Requerimientos: Nada                                                        */
/*Recibe: Nada                                                                */
/*Entrega: Nada                                                               */
 
#include<stdio.h>
#include<conio.h>
 
#define MAX 5
 
int ingresar(int *, int);
void ordenar(int *, int);
void mostrar(int *, int);
int buscar(int*,int,int,int);
void main(void)
{
	int vec[MAX],search;
 
	search=ingresar(vec, sizeof(vec)/sizeof(int));
	ordenar(&vec[0], sizeof(vec)/sizeof(int));
	mostrar(vec,MAX);
	if(buscar(vec,0,MAX,search)==-1)
		printf("EL VALOR BUSCADO NO SE ENCONTRO EN EL ARREGLO\n");
	else
		printf("EL VALOR FUE ENCONTRADO EN LA POSICION %d\n", buscar(vec,0,MAX,search));
	getch();
}
 
int ingresar(int *s, int max)
{
	int i,key;
	clrscr();
	for(i=0;i<max;i++,s++)
	{
		printf("INGRESE UN NUMERO ENTERO\n");
		scanf("%d",s);
	}
	printf("INGRESE EL NUMERO A BUSCAR...\n");
	scanf("%d",&key);
	return key;
}
 
void ordenar(int *s, int max)
{
	int i,
	j,
	temp,
	*inicio=s;
 
	for(i=1;i<max;i++,s=inicio)//Pasadas: cada pasada ordena un valor
		for(j=0;j<max-1;j++,s++)//intercambio
		{
		if(*s>*(s+1))
		{
			temp= *(s+1);
			*(s+1)= *s;
			*s= temp;
		}
	}
}
 
void mostrar(int *s, int max)
{
 
	int i;
	clrscr();
	for(i=0;i<max;i++,s++)
	printf("%d\n",*s);
}
 
int buscar(int *s, int inicio, int final, int key)
{
	int medio;
	while(inicio<=final)
	{
		medio=(int)(inicio+final)/2 ;
 
		if(*(s+medio)== key)
			return medio;
		else if(*(s+medio)<key)
			inicio=medio+1;
		else
			final=medio-1;
	}
	return -1;
}



Comentarios sobre la versión: Versión 1 (0)


No hay comentarios
 

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s467