Está en la página 1de 17

ALGORITMOS DE ORDENAMIENTO Y

BUSQUEDA
Ordenamiento
Es la operacin de arreglar los registros de una
tabla en algn orden secuencial de acuerdo a un
criterio de ordenamiento. El ordenamiento se
efecta con base en el valor de algn campo en
un registro. El propsito principal de un
ordenamiento es el de facilitar las bsquedas de
los miembros del conjunto ordenado.
El ordenar un grupo de datos significa mover
los datos o sus referencias para que queden en
una secuencia tal que represente un orden, el
cual puede ser numrico, alfabtico o incluso
alfanumrico, ascendente o descendente.
Osirys
Bsqueda
es aquel que est diseado para localizar
un elemento con ciertas propiedades
dentro de una estructura de datos; por
ejemplo, ubicar el registro
correspondiente a cierta persona en
una base de datos, o el mejor movimiento
en una partida de ajedrez.
La variante ms simple del problema es la
bsqueda de un nmero en un vector.

Osirys
Notacin de la gran O (big O)
Cuando trabajamos con algoritmos,
normalmente nos interesa el rendimiento de
ste. Nos interesa saber, por ejemplo, de qu
forma se comporta el algoritmo dada una
cantidad determinada de datos a procesar.
Cientficos en computacin emplean una forma
de categorizar y comparar los algoritmos, de tal
suerte que se pueda categorizar de forma rpida
el rendimiento de un algoritmo. Esta forma de
medir se llama la Notacin Gran O: Big-O
Notation (BON).

Medardo
Esta notacin expresa la ejecucin de un algoritmo dado un parmetro de entrada (i.e. el tamao de datos a procesar). La
notacin normalmente es O(n)

Medardo
Bsicamente notacin gran O:

crece en forma de la grfica matemtica.


nos permite comparar los costos relativos de dos o
ms algoritmos para resolver el mismo problema.
Permite anlisis de algoritmos, estima el consumo de
recursos de un algoritmo.
Permite anlisis de algoritmos tambin les da una
herramienta a los diseadores de algoritmos para
estimar si una solucin propuesta es probable que
satisfaga las restricciones de recursos de un problema.

El concepto de razn de crecimiento, es la razn a la cual


el costo de un algoritmo crece conforme el tamao de la
entrada crece.

Una funcin f(n) se define de orden O(g(n)), es decir, f(n) =


O(g(n)) si existen constantes positivas n0 y c tales que: |
f(n) | = c * <= | g(n) | , para toda n > n0100 n3 => O(n3) ::
6n2 + 2n + 4 => O(n21024 => O(1)
1+2+3+4+...+n-1+n= n * (n+1)/2 = O(n2) Medardo
Quicksort
El mtodo de ordenamiento rpido o mtodo quicksort, es una
tcnica basada en otra conocida con el nombre divide y
vencers, que permite ordenar una cantidad de elementos en
un tiempo proporcional a n2 en el peor de los casos o a n log n
en el mejor de los casos. El algoritmo original es recursivo,
como la tcnica en la que se basa.

Debe elegir uno de los elementos del arreglo al que llamaremos pivote.
Debe acomodar los elementos del arreglo a cada lado del pivote, de
manera que del lado izquierdo queden todos los menores al pivote y del
lado derecho los mayores al pivote; considere que en este momento, el
pivote ocupa exactamente el lugar que le corresponder en el arreglo
ordenado.
Colocado el pivote en su lugar, el arreglo queda separado en dos
subarreglos, uno formado por los elementos del lado izquierdo del pivote,
y otro por los elementos del lado derecho del pivote.
Repetir este proceso de forma recursiva para cada sub arreglo mientras
stos contengan ms de un elemento. Una vez terminado este proceso
Jess todos los elementos estarn ordenados.
Heapsort
Este algoritmo consiste en
El ordenamiento por almacenar todos los
montculos (heapsort elementos del vector a
en ingls) es un ordenar en un montculo
algoritmo de (heap), y luego extraer el
ordenamiento no nodo que queda como
recursivo, no estable, nodo raz del montculo
con complejidad (cima) en sucesivas
computacional iteraciones obteniendo el
conjunto ordenado.

Jess
ORDENAMIENTO POR SELECCIN
(SelectionSort)

Buscas el elemento ms pequeo de la lista.


Lo intercambias con el elemento ubicado en la primera posicin de la lista.
Buscas el segundo elemento ms pequeo de la lista.
Lo intercambias con el elemento que ocupa la segunda posicin en la lista.
Repites este proceso hasta que hayas ordenado toda la lista.

Ventajas:
Fcil implementacin.
No requiere memoria Desventajas:
adicional. Lento.
Rendimiento constante: Realiza numerosas
poca diferencia entre el comparaciones.
peor y el mejor caso.
Osirys
ORDENAMIENTO POR INSERCIN DIRECTA (InsertionSort)

El algoritmo de ordenacin por el mtodo de insercin directa es un algoritmo relativamente sencillo


y se comporta razonablemente bien en gran cantidad de situaciones.
Completa la tripleta de los algoritmos de ordenacin ms bsicos y de orden de complejidad
cuadrtico, junto con SelectionSort y BubbleSort.
Se basa en intentar construir una lista ordenada en el interior del array a ordenar.

Osirys
ANLISIS DEL ALGORITMO.
Estabilidad: Este algoritmo nunca intercambia registros con claves iguales. Por lo tanto es estable.
Requerimientos de Memoria: Una variable adicional para realizar los intercambios.
Tiempo de Ejecucin: Para una lista de n elementos el ciclo externo se ejecuta n1 veces. El ciclo interno se ejecuta
como mximo una vez en la primera iteracin, 2 veces en la segunda, 3 veces en la tercera, etc.

Ventajas:
Fcil implementacin.
Requerimientos mnimos de memoria.

Desventajas:
Lento.
Jose
Realiza numerosas comparaciones.
METODO DE LA BURBUJA (BubbleSort)

La idea bsica del ordenamiento de la burbuja es recorrer el conjunto de elementos en forma secuencial varias
veces. Cada paso compara un elemento del conjunto con su sucesor (x[i] con x[i+i]), e intercambia los dos
elementos si no estn en el orden adecuado.

El algoritmo utiliza una bandera que cambia cuando se realiza algn intercambio de valores, y permanece intacta
cuando no se intercambia ningn valor, pudiendo as detener el ciclo y terminar el proceso de ordenamiento
cuando no se realicen intercambios, lo que indica que este ya est ordenado.
Este algoritmo es de fcil comprensin y programacin pero es poco eficiente puesto que existen n-1 pasos y n-
i comprobaciones en cada paso, aunque es mejor que el algoritmo de ordenamiento por intercambio.

Jess
De cadena Knuth-Morris-Pratt

El algoritmo KMP, trata de localizar la posicin de comienzo de una cadena, dentro de


otra. Antes que nada con la cadena a localizar se pre calcula una tabla de saltos (conocida
como tabla de fallos) que despus al examinar entre si las cadenas se utiliza para hacer
saltos cuando se localiza un fallo.

Jose
De cadena Boye-Moore
El algoritmo de bsqueda de cadenas Boyer-Moore es un particularmente eficiente algoritmo de bsqueda de
cadenas. El algoritmo pre procesa la cadena objetivo (clave) que est siendo buscada, pero no en la cadena en que
se busca (no como algunos algoritmos que procesan la cadena en que se busca y pueden entonces amortizar el
coste del pre procesamiento mediante bsqueda repetida). El tiempo de ejecucin del algoritmo Boyer-Moore,
aunque es lineal en el tamao de la cadena siendo buscada, puede tener un factor significativamente ms bajo que
muchos otros algoritmos de bsqueda: no necesita comprobar cada carcter de la cadena que es buscada, puesto
que salta algunos de ellos. Generalmente el algoritmo es ms rpido cuanto ms grande es la clave que es
buscada, usa la informacin conseguida desde un intento para descartar tantas posiciones del texto como sean
posibles en donde la cadena no coincida.

Jose

También podría gustarte