Sei sulla pagina 1di 12

Unidad 6.- Ordenacin interna.

6.1 Algoritmos de Ordenamiento por Intercambio.


6.1.1 Burbuja.
6.1.2 Quicksort.
6.1.3 ShellSort.
6.2 Algoritmos de ordenamiento por Distribucin.
6.2.1 Radix.

Qu es 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.
Ej. de ordenamientos:
Dir. telefnico, tablas de contenido, bibliotecas y diccionarios, etc.
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.
Cundo conviene usar un mtodo de ordenamiento?
Cuando se requiere hacer una cantidad considerable de bsquedas y es
importante el factor tiempo.

Tipos de ordenamientos:
Tipos de ordenamientos:
Los 2 tipos de ordenamientos que se pueden realizar son: los
internos y los externos.
Los internos: Son aquellos en los que los valores a ordenar
estn en memoria principal, por lo que se asume que el tiempo
que se requiere para acceder cualquier elemento sea el mismo
(a[1], a[500], etc).
Los externos: Son aquellos en los que los valores a ordenar
estn en memoria secundaria (disco duro, memoria USB,
unidades de respaldo, etc), por lo que se asume que el tiempo
que se requiere para acceder a cualquier elemento depende de
la ltima posicin accesada (posicin 1, posicin 500, etc).

Ordenaciones en Arreglos.
La importancia de mantener nuestros arreglos
ordenados radica en que es mucho ms rpido
tener acceso a un dato en un arreglo ordenado
que en uno desordenado.
Existen muchos algoritmos para la ordenacin
de elementos en arreglos, enseguida veremos
algunos de ellos.

a)Seleccin Directa
Este mtodo consiste en seleccionar el elemento ms pequeo de nuestra lista
para colocarlo al inicio y as excluirlo de la lista.
Para ahorrar espacio, siempre que vayamos a colocar un elemento en su
posicin correcta lo intercambiaremos por aquel que la est ocupando en ese
momento.
El algoritmo de seleccin directa es el siguiente:
i=0
mientras (i< N-1){
min = i
j=i+1
mientras (j < N)
{
si (arreglo[j] < arreglo[min])
min = j
j=j+1
}
intercambia(arreglo[min],arreglo[i])
i = i +1 }

b)Ordenacin por Burbuja


Es el mtodo de ordenacin ms utilizado por su fcil comprensin y programacin,
pero es importante sealar que es el ms ineficiente de todos los mtodos .
Este mtodo consiste en llevar los elementos menores a la izquierda del arreglo
los mayores a la derecha del mismo. La idea bsica del algoritmo es comparar
pares de elementos adyacentes e intercambiarlos entre s hasta que todos se
encuentren ordenados.
i=0
mientras (i < N-1)
{
j = N-1
mientras (j > i)
{
si (arreglo[j] < arreglo[j-1])
intercambia(arreglo[j],arreglo[j-1])
j=j-1
}
i = i +1
}

ALGORITMO DE ORDENAMIENTO QUICKSORT


DEFINICIN DEL ALGORITMO
Esta es probablemente la tcnica ms rpida conocida. Fue desarrollada por
C.A.R. Hoare en 1960. El algoritmo original es recursivo, pero se utilizan
versiones iterativas para mejorar su rendimiento ya que los algoritmos
recursivos son mas lentos y consumen mucho mas recursos que los no
recursivos.
PROCEDIMIENTO DEL ALGORITMO:
Eliges un elemento de la lista. Puede ser cualquiera, este ser llamado
elemento de divisin.
Buscas la posicin que le corresponde en la lista ordenada (explicado ms
abajo).
Acomodas los elementos de la lista a cada lado del elemento de divisin, de
manera que a un lado queden todos los menores que l y al otro los mayores
(explicado ms abajo tambin). En este momento el elemento de divisin
separa la lista en dos sublistas (de ah su nombre).
Realizas esto de forma recursiva para cada sublista mientras stas tengan un
largo mayor que 1.
Una vez terminado este proceso todos los elementos estarn ordenados.

Bsquedas en Arreglos
Una bsqueda es el proceso mediante el cual
podemos localizar un elemento con un valor
especifico dentro de un conjunto de datos.
Terminamos con xito la bsqueda cuando el
elemento es encontrado.
A continuacin veremos algunos de los
algoritmos de bsqueda que existen.

a)Bsqueda Secuencial
A este mtodo tambien se le conoce como bsqueda lineal y consiste
en empezar al inicio del conjunto de elementos , e ir atravez de ellos
hasta encontrar el elemento indicado hasta llegar al final de
arreglo.
Este es el mtodo de bsqueda ms lento, pero si nuestro arreglo se
encuentra completamente desordenado es el nico que nos podr
ayudar a encontrar el dato que buscamos.
ind <- 1
encontrado <- falso
mientras no encontrado y ind < N haz
si arreglo[ind] = valor_buscado entonces
encontrado <- verdadero
en caso contrario
ind <- ind +1

b)Bsqueda Binaria
Las condiciones que debe cumplir el arreglo para poder usar
bsqueda binaria son que el arreglo este ordenado y que se conozca
el numero de elementos.
Este mtodo consiste en lo siguiente: comparar el elemento
buscado con el elemento situado en la mitad del arreglo, si tenemos
suerte y los dos valores coinciden, en ese momento la bsqueda
termina. Pero como existe un alto porcentaje de que esto no ocurra,
repetiremos los pasos anteriores en la mitad inferior del arreglo si el
elemento que buscamos resulto menor que el de la mitad del
arreglo, o en la mitad superior si el elemento buscado fue mayor.
La bsqueda termina cuando encontramos el elemento o cuando el
tamao del arreglo a examinar sea cero.

ALGORITMO DE LA BUSQUEDA BINARIA


encontrado <- falso
primero <- 1
ultimo <- N
mientras primero <= ultimo y no encontrado haz
mitad <- (primero + ultimo)/2
si arreglo[mitad] = valor_buscado entonces
verdadero
en caso contrario
si arreglo[mitad] > valor_buscado entonces
ultimo <- mitad - 1
en caso contrario
primero <- mitad + 1

encntrado <-

Potrebbero piacerti anche