Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Informática III
Variables a utilizar:
• i=1 Condición para el intercambio
• j=i+1
• Variable temporal= Ind A(Ind)>A(j)
Resumiendo…
Variables a utilizar:
• i=2 hasta N
• j=1hasta N-1 A(j)>A(j+1)
Condición para el intercambio
Diagrama de flujo
¡Ahora codifiquemos!
Declaracion del vector en ANSI-C.
int A [8];
Metodo implementado por medio de un procedimeinto en ANSI-C.
void MetodoBurbuja (int A[], int N){
int j;
int i; Invocacion del metodo de ordenamiento en ANSI-C,
int Temp ; A[1] = 13;
for(i = 2;i <=N;i++){ A[2] = 59;
for(j = 1;j <=N - 1;j++){ A[3] = 57;
if(A[j] > A[j + 1]) { A[4] = 11;
Temp = A[j]; A[5] = 68;
A[j] = A[j + 1]; A[6] = 24;
A[j + 1] = Temp ; A[7] = 46;
} A[8] = 35;
} MetodoBurbuja (A ,8);
} for (k=1;k <=8; k++)
}; printf (" %d\n",A[k]);
Ordenamiento por inserción
Este método consiste en ir recorriendo el
vector e ir ubicando cada valor con respecto a
los valores ya
analizados.
Para determinar donde se ubica cada valor, se
procedera a comparar de a dos en dos los elementos
del vector. Utilizaremos un ciclo exacto con variable
de control i que ira de 2 a N que servira de gua para
el
recorrido del vector.
A(8)=
1 2 3 4 5 6 7 8 Indice
13 59 57 11 68 24 46 35 Valor
Variables a utilizar:
• i=2 a N Condición para el intercambio
• j= i-1
• Temp= i A(j)>Temp
Diagrama de flujo
Declaracion del vector en ANSI-C. ¡Ahora codifiquemos!
int A [8];
Metodo implementado por medio de un procedimeinto en ANSI-C.
void MetodoInsercion (int A[], int N){
int j;
int i;
int Temp ; Invocación del método de ordenamiento en ANSI-C, A[1] = 13;
for (i = 2;i <=N;i++){ A[2] = 59;
Temp = A[i]; A[3] = 57;
j = i - 1; A[4] = 11;
while ((A[j] > Temp ) && (j >= 1)){ A[5] = 68;
A[j + 1] = A[j]; A[6] = 24;
j = j - 1; A[7] = 46;
A[j + 1] = Temp ; A[8] = 35;
} MetodoInsercion (A ,8);
} for (k=1;k <=8; k++)
}; printf (" %d\n",A[k]);
Método Shell
El método Shell es una
optimización del método de
Inserción, procediendo a
recorrer el vector primero en
pasos de comparación
grandes y luego achicando
dicho paso.
De esta manera se logra
disminuir la cantidad de
intercambios de valores
necesarias.
A(8)=
1 2 3 4 5 6 7 8 Índice
13 59 57 11 68 24 46 35 Valor
El paso de comparación lo
determinamos Intervalo
A(j)>A(k)
Comparamos el valor en posición j = 1
con el situado un paso mas adelante.
Intervalo =N/2 PASO
N es el tamaño del vector
i= k
Comparamos el valor en posición j = 1 con el situado un paso mas
adelante. Dicha posicion la denominamos k = 5
A(j)>A(k)
La condicion A(j) = 57 > A(k) = 46 es verdadera, intercambiamos valores.
Diagrama de flujo
¡Ahora codifiquemos!
Método implementado por medio de un procedimeinto en ANSI-C.