Busqueda_y_ordenacion

Páginas: 14 (3261 palabras) Publicado: 2 de noviembre de 2015
UNMSM – Facultad de Ingeniería Industrial
ALGORITMOS Y PROGRAMACION
BÚSQUEDA SECUENCIAL
- Se utiliza en arreglos ordenados o desordenados.
- Consiste en recorrer el arreglo elemento por elemento, comparándolos con el dato
buscado. Este proceso finaliza cuando se encuentra el valor o cuando ya no existen más
elementos por recorrer.
int busqsecuencial( int a[N], int x )
{
int i;
i = 0;
while ( i if ( a[i] == x )
return i;
else
i++;
return -1;
}

BUSQUEDA BINARIA
- Se utiliza en arreglos ordenados.
- Consiste en reducir el espacio de búsqueda a la mitad cada vez que la comparación del
elemento central con el dato buscado resulte falso.
int busqbinaria( int a[N], int x )
{
int c,p,u;
p = 0;
u = N-1;
while ( p<=u )
{
c = ( p + u ) / 2;
if ( a[c] == x)
return c;
else
if ( x < a[c] )
u =c -1 ;
else
p = c + 1;
}
return -1;
}

Mag. Hilmar Hinojosa Lazo

1

UNMSM – Facultad de Ingeniería Industrial
ALGORITMOS Y PROGRAMACION
Ejemplo de Búsqueda Binaria
Buscar el valor 32 en el siguiente arreglo:

a

4

7

10

12

15

18

21

24

26

30

32

36

39

42

44

46

50

54

59

63

66

69

72

75

77

80

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

2223

24

25

Inicialmente, el espacio de búsqueda es todo el arreglo, cuyo centro es el elemento 12:

a

4

7

10

12

15

18

21

24

26

30

32

36

39

42

44

46

50

54

59

63

66

69

72

75

77

80

0

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

p=0

c = 12

u = 25

Se compara 32 con a[12], como 32 es menor que 39, el nuevo espacio de búsquedava del elemento 0 al elemento 11, cuyo centro es el
elemento 5:

a

4

7

10

12

15

18

21

24

26

30

32

36

0

1

2

3

4

5

6

7

8

9

10

11

p=0

c= 5

u = 11

Mag. Hilmar Hinojosa Lazo

2

UNMSM – Facultad de Ingeniería Industrial
ALGORITMOS Y PROGRAMACION

Se compara 32 con a[5], como 32 es mayor a 18, el nuevo espacio de búsqueda va del elemento 6 al elemento 11, cuyo centro esel
elemento 8:

a

21

24

26

30

32

36

6

7

8

9

10

11

p=6

c=8

u = 11

Se compara 32 con a[8], como 32 es mayor a 26, el nuevo espacio de búsqueda va del elemento 9 al elemento 11, cuyo centro es el
elemento 10:

a

30

32

36

9

10

11

p=9

u = 11
c = 10

Se compara 32 con a[10], como 32 es igual a 32, el dato buscado ha sido encontrado en la posición 10.

Mag. Hilmar Hinojosa Lazo

3 UNMSM – Facultad de Ingeniería Industrial
ALGORITMOS Y PROGRAMACION
ORDENACIÓN POR EL MÉTODO DE LA BURBUJA

void ord_burbuja( int a[N] )
{
int i,j,aux;
for(i=0;i for(j=i+1;j if (a[i] > a[j])
{
aux = a[i];
a[i] = a[j];
a[j] = aux;
}
}

Ejemplo de Ordenación por el Método de la Burbuja
Ordenar el siguiente arreglo:
a

27

18

20

11

9

0

1

2

3

4

i=0
j=1

a[ 0 ] > a[ 1 ] ? Si Intercambiar

a

18

27

20

11

9

0

1

2

3

4

j=2

a[ 0 ] > a[ 2 ] ? No

j=3

a[ 0 ] > a[ 3 ] ? Si  Intercambiar

a

j=3

11

27

20

18

9

0

1

2

3

4

a[ 0 ] > a[ 4 ] ? Si  Intercambiar

Mag. Hilmar Hinojosa Lazo

4

UNMSM – Facultad de Ingeniería Industrial
ALGORITMOS Y PROGRAMACION

a

9

27

20

18

11

0

1

2

3

4

i=1
j=2

a[ 1 ] > a[ 2 ] ? Si  Intercambiar

a

j=3

2027

18

11

0

1

2

3

4

a[ 1 ] > a[ 3 ] ? Si  Intercambiar

a

j=4

9

9

18

27

20

11

0

1

2

3

4

a[ 1 ] > a[ 4 ] ? Si  Intercambiar

a

9

11

27

20

18

0

1

2

3

4

i=2
j=3

a[ 2 ] > a[ 3 ] ? Si  Intercambiar

a

j=3

9

11

20

27

18

0

1

2

3

4

a[ 2 ] > a[ 4 ] ? Si  Intercambiar

a

Mag. Hilmar Hinojosa Lazo

9

11

18

27

20

0

1

2

3

4

5

UNMSM – Facultad deIngeniería Industrial
ALGORITMOS Y PROGRAMACION
i=3
j=4

a[ 3 ] > a[ 4 ] ? Si  Intercambiar

a

9

11

18

20

27

0

1

2

3

4

9

11

18

20

27

0

1

2

3

4

El arreglo ordenado es:
a

ORDENACIÓN POR EL MÉTODO DE SELECCION

void ord_seleccion( int a[N] )
{
int i, j, aux, posmen;
for(i=0;i {
posmen = i;
for( j=i+1;j if( a[j] < a[posmen] )
posmen = j;
if ( posmen != i )
{
aux =...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS