ORDENACIÓN POR INTERCAMBIO
a [ 8, 4, 6, 2]
Pasada 0
a[0] a[1] a[2] a[3]
8 4 6 2 Se realiza el
4 8 6 2
intercambio
No se realiza 8 4 6 2
4 8 6 2 intercambio
Se realiza
4 8 6 2 2 8 6 4
intercambio
Pasada 1
Se realiza
2 8 6 4 2 6 8 4
intercambio
2 6 8 4 Se realiza 2 4 8 6
intercambio
Pasada 2
2 4 8 6 Se realiza 2 4 6 8
intercambio
Vector a[ ] , n
aux;
i,j
para i=0 hasta i < n – 1
para j = i + 1 hasta j < n
si ( a[i] > a[j] ) entonces
aux = a[i];
a[i]= a[j];
a[j]= aux;
finsi
j=j+1;
finPara
i=i+1;
finpara
ORDENACIÓN POR SELECCIÓN
A [ 51,21,39,80,35 ]
A[0] A[1] A[2] A[3] A[4] Pasada 0: seleccionar 21
51 21 39 80 35 Intercambio 21 y A[0]
Pasada 0
A[0] A[1] A[2] A[3] A[4] Pasada 1: seleccionar 36
21 51 39 80 36 Intercambio 36 y A[1]
Pasada 1
A[0] A[1] A[2] A[3] A[4] Pasada 2: seleccionar 39
21 36 39 80 51 Intercambio 39 y A[2]
Pasada 2
A[0] A[1] A[2] A[3] A[4] Pasada 3: seleccionar 51
21 36 39 80 51 Intercambio 51 y A[3]
Pasada 3
21 36 39 51 80
Ordenación por Inserción
A = 50, 20, 40, 80, 30
50
Comienzo con 50
Procesar 20
2 50
0
Se inserta 20 en la posición 0; 50 se mueve a posición 1
Procesar 40
20 40 50
Se inserta 40 en la posición 1; se mueve 50 a posición 2
Procesar 80
20 40 50 80
El elemento está bien ordenado
Procesar 30
20 3 40 5 80
0 0
Se inserta 30 en posición 1
Se desplaza a la derecha la sublista derecha
Algoritmo de la Burbuja
Búsqueda secuencial
Lista A [ 4, 8, 3, 14, 5, 7 ]
Clave = 6 4 8 3 14 5 7
No existe el número 6
Clave = 14 A[3]
4 8 3 14 5 7
For ( int = 0; i < n; i++)
{
If ( lista[i] == clave )
Return i;
}
Búsqueda Binaria
Sea el arreglo a, buscar la clave = 40
- 4 5 9 12 1 25 4 60
8 8 0
Central
Bajo=0
Alto=8
Calcular central central = (bajo+alto) /2 = (0+8 )/2 = 4
Clave (40) > a[4] (12)
Buscar en sublista derecha
18 25 40 60
Central= (5+8) / 2 = 6.5 6
Buscar en sublista derecha
40 60
Bajo= 7
Alto= 8
Central = (7+8) / 2 = 7.5 7
Clave 40 = a[7] (40)