Académique Documents
Professionnel Documents
Culture Documents
En este tipo de algoritmo los elementos que van a ser ordenados son
considerados uno a la vez. Cada elemento es INSERTADO en la posicin apropiada con
respecto al resto de los elementos ya ordenados.
Ejemplo:
4-3-5-2-1
Temp toma el valor del segundo elemento, 3. La primera carta es el 4. Ahora
comparamos: 3 es menor que 4. Luego desplazamos el 4 una posicin a la derecha y
despus copiamos el 3 en su lugar.
4-4-5-2-1
3-4-5-2-1
El siguiente elemento es 5. Comparamos con 4. Es mayor que 4, as que no
ocurren intercambios.
Continuamos con el 2. Es menor que cinco: desplazamos el 5 una posicin a la
derecha:
3-4-5-5-1
Comparamos con 4: es menor, as que desplazamos el 4 una posicin a la
derecha:
3-4-4-5-1
Fin
Caso peor: se trata de aquellos ejemplares del problema en los que el algoritmo
es menos eficiente (no siempre existe el caso peor). Ejemplos: insertar al final de una
lista, ordenar un vector que est ordenado en orden inverso, etc. Nos interesa mucho.
Caso medio: se trata del resto de ejemplares del problema. Por ejemplo:
multiplicar dos nmeros enteros distintos de cero, insertar en a de una lista que no sea el
principio ni el final, ordenar un vector que no est ordenado ni en orden directo ni
inverso, etc. Es el caso que ms nos debera preocupar puesto que ser el ms habitual,
sin embargo no siempre se puede calcular (habra que saber cules son las
probabilidades de los distintos ejemplares).
Precisin. Todas las acciones de un algoritmo deben estar bien definidas, esto
es, ninguna accin puede ser ambigua, sino que cada una de ellas slo se debe
poder interpretar de una nica manera. Dicho de otra forma, si el programa que
resulta de un algoritmo se ejecuta varias veces con los mismos datos de entrada,
en todos los casos se obtendrn los mismos datos de salida.
Modularidad. Nunca hay que olvidarse del hecho de que un algoritmo puede
formar parte de la solucin a un problema mayor. Pero, a su vez, dicho algoritmo
debe descomponerse en otros, siempre y cuando, esto favorezca a la claridad del
mismo.
La persona que disea un algoritmo debe ser consciente de que todas las
propiedades de un algoritmo se transmitirn al programa resultante.
Grfica del tiempo de ejecucin para mcd (x, y). El rojo indica un clculo
rpido, mientras los puntos eventualmente azules indican tiempos de ejecucin ms
grandes.
Si se considera que las operaciones aritmticas son operaciones elementales, sin
prdida de generalidad se supone que
est en el orden de
donde
Esto es porque:
Si
, entonces
Si
entonces
, por lo tanto
menos por dos despus de dos pasadas por el ciclo. Adems sigue siendo cierto que
y por lo tanto se puede aplicar el mismo razonamiento. La conclusin es que a lo
mucho, se pasar por el ciclo aproximadamente
Por lo tanto, la complejidad de
veces.
con
est en orden de
.
Sin embargo, si se considera que las operaciones aritmticas no son operaciones
elementales, entonces el nmero de operaciones est acotado por O (n2) - inferior a An2
con A una constante - donde n es el nmero de cifras del ms pequeo entre a y b.
*Tcnica de bsqueda.
suficiente
para
decidir
por
un
movimiento.
Los algoritmos desarrollados para este fin han sido variados. La primera propuesta,
presentada por Shannon, fue la bsqueda por fuerza bruta a profundidad fija,
examinando todas las continuaciones posibles hasta cierto lmite de movimientos. Esta
bsqueda
se
realizara
mediante
el
algoritmo
Minimax.
almacenamiento
secundario, tales como discos o cintas magnticas. Aqu, el tiempo de acceso a lectura y
escritura influye en la determinacin de la eficiencia del ordenamiento.)
*Bsqueda binaria.
Es uno de los algoritmos ms rpidos que usan los programadores .A diferencia de
la bsqueda secuencial que examina elementos sucesivos de la matriz, la bsqueda
binaria reduce el nmero de elementos que deben ser examinados.
Con un factor de dos en cada iteracin hasta que se encuentra el registro deseado .La
disminucin de los tiempos de ejecucin se hace ms importante al aumentar el tamao
de la matriz.
La primera iteracin de la bsqueda examina toda la matriz. Supongamos que las
variables bajas y altas en el siguiente ejemplo reciben los valores de 0 y 9. La variable
ndice medio es el elemento medio del intervalo de bsqueda. Valores de [ndice _
medio] contiene el valor que se va a comparar con el valor deseado.
Valor a buscar =jelipe
ndice _ medio = (Alto + Bajo) div 2