Вы находитесь на странице: 1из 9

Ingeniera en Desarrollo de Software

Unidad 2 Ordenacin y Bsqueda


Actividad 1 Mtodos de Ordenacin
Presenta: Carlos Luna Villegas
Grupo: DS-DEDA-1701-B1-004
Matricula: ES1511104189
Correo: ES1511104189@unadmexico.mx
METODOS DE ORDENAMIENTO

Debido a que las estructuras de datos son utilizadas para almacenar


informacin, para poder recuperar esa informacin de manera eficiente es
deseable que aquella est ordenada. Existen varios mtodos para ordenar las
diferentes estructuras de datos bsicas.

En general los mtodos de ordenamiento no son utilizados con frecuencia, en


algunos casos slo una vez. Hay mtodos muy simples de implementar que
son tiles en los casos en dnde el nmero de elementos a ordenar no es muy
grande (ej., menos de 500 elementos). Por otro lado hay mtodos sofisticados,
ms difciles de implementar pero que son ms eficientes en cuestin de
tiempo de ejecucin.

Los mtodos simples son:

insertion sort (o por insercin directa)


selection sort,
bubble sort,
shellsort

En dnde el ltimo es una extensin al insertion sort, siendo ms rpido.


Los mtodos ms complejos son:

el quick-sort,
el heap sort,
radix
address-calculation sort.

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.

ORDENAMIENTO DE BURBUJA
La Ordenacin de burbuja (Bubble Sort en ingls) es un sencillo algoritmo de
ordenamiento. Funciona revisando cada elemento de la lista que va a ser
ordenada con el siguiente, intercambindolos de posicin si estn en el orden
equivocado. Es necesario revisar varias veces toda la lista hasta que no se
necesiten ms intercambios, lo cual significa que la lista est ordenada.
Este algoritmo obtiene su nombre de la forma con la que suben por la lista los
elementos durante los intercambios, como si fueran pequeas "burbujas".
Tambin es conocido como el mtodo del intercambio directo. Dado que solo
usa comparaciones para operar elementos, se lo considera un algoritmo de
comparacin, siendo el ms sencillo de implementar.

ORDENAMIENTO SHELL
El ordenamiento Shell (Shell sort en ingls) es un algoritmo de ordenamiento.
El mtodo se denomina Shell en honor de su inventor Donald Shell. Su
implementacin original, requiere O(n2) comparaciones e intercambios en el
peor caso. Esto es mejor que las O(n2) comparaciones requeridas por
algoritmos simples pero peor que el ptimo O(n log n). Aunque es fcil
desarrollar un sentido intuitivo de cmo funciona este algoritmo, es muy difcil
analizar su tiempo de ejecucin.
El algoritmo Shell sort mejora el ordenamiento por insercin comparando
elementos separados por un espacio de varias posiciones. Esto permite que un
elemento haga "pasos ms grandes" hacia su posicin esperada. Los pasos
mltiples sobre los datos se hacen con tamaos de espacio cada vez ms
pequeos. El ltimo paso del Shell sort es un simple ordenamiento por
insercin, pero para entonces, ya est garantizado que los datos del vector
estn casi ordenados.

ORDENAMIENTO POR INSERCIN

El ordenamiento por insercin (insertion sort en ingls) es una manera muy


natural de ordenar para un ser humano, y puede usarse fcilmente para
ordenar un mazo de cartas numeradas en forma arbitraria. Requiere O(n)
operaciones para ordenar una lista de n elementos.
Inicialmente se tiene un solo elemento, que obviamente es un conjunto
ordenado. Despus, cuando hay k elementos ordenados de menor a mayor, se
toma el elemento k+1 y se compara con todos los elementos ya ordenados,
detenindose cuando se encuentra un elemento menor (todos los elementos
mayores han sido desplazados una posicin a la derecha) o cuando ya no se
encuentran elementos (todos los elementos fueron desplazados y este es el
ms pequeo). En este punto se inserta el elemento k+1 debiendo desplazarse
los dems elementos.

ORDENAMIENTO POR SELECCIN


El ordenamiento por seleccin (Selection Sort en ingls) es un algoritmo de
ordenamiento que requiere O(n) operaciones para ordenar una lista de n
elementos.
Su funcionamiento es el siguiente:

Buscar el mnimo elemento de la lista


Intercambiarlo con el primero
Buscar el mnimo en el resto de la lista
Intercambiarlo con el segundo
Buscar el mnimo elemento entre una posicin i y el final de la lista
Intercambiar el mnimo con el elemento de la posicin i

De esta manera se puede escribir el siguiente pseudocdigo para ordenar una


lista de n elementos indexados desde el 1:

para i=1 hasta n-1


minimo = i;
para j=i+1 hasta n
si lista[j] < lista[minimo] entonces
minimo = j /* (!) */
fin si
fin para
intercambiar(lista[i], lista[minimo])
fin para

METODOS DE BUSQUEDA

Una de las funciones que con mayor frecuencia se utiliza en los sistemas de
informacin, es el de las consultas a los datos, se hace necesario utilizar
algoritmos, que permitan realizar bsquedas de forma rpida y eficiente.
La bsqueda, se puede decir que es la accin de recuperar datos o
informacin, siendo una de las actividades que ms aplicaciones tiene en los
sistemas de informacin, ms formalmente se puede definir como La
operacin de bsqueda sobre una estructura de datos es aquella que permite
localizar un nodo en particular si es que ste existe

MTODO DE BSQUEDA SECUENCIAL


Este mtodo se usa para buscar un elemento de un vector, es explorar
secuencialmente el vector, es decir; recorrer el vector desde el prior elemento
hasta el ltimo. Si se encuentra el elemento buscado se debe visualizar un
mensaje similar a Fin de Bsqueda o Elemento encontrado y otro que diga
posicin= en caso contrario, visualizar un mensaje similar a Elemento no
existe en la Lista.

Este tipo de bsqueda compara cada elemento del vector con el valor a
encontrar hasta que este se consiga o se termine de leer el vector completo.

MTODO DE BSQUEDA BINARIA


Es un mtodo que se basa en la divisin sucesiva del espacio ocupado por el
vector en sucesivas mitades, hasta encontrar el elemento buscado.
Esta bsqueda utiliza un mtodo de divide y vencers para localizar el valor
deseado. Con este mtodo se examina primero el elemento central de la lista;
si este es el elemento buscado entonces la bsqueda ha terminado. En caso
contrario se determina si el elemento buscado est en la primera o segunda
mitad de la lista y a continuacin se repite el proceso anterior, utilizando el
elemento central de esta sublista. Este tipo de bsqueda se utiliza en vectores
ordenados.

MTODO DE BSQUEDA DE INTERPOLACIN

Al contrario de la bsqueda binaria, la bsqueda de interpolacin no calcula el


punto medio sino que realiza varios intentos en busca del valor requerido,
tomando en cuenta el menor y mayor elemento del arreglo as como su
longitud. Este procedimiento es solamente posible si los elementos del arreglo
son nmeros. Se basa en la hiptesis de que el elemento del medio no es la
mejor opcin en muchos casos; por ejemplo, si el elemento buscado esta
prximo al mayor elemento del arreglo, es muy probable que este ubicado en
el final del arreglo. Cuando la distribucin de los elementos en el arreglo es
uniforme o cercanamente, se realizan O(log log n) comparaciones

En la prctica, la bsqueda de interpolacin es ms ineficiente que la bsqueda


binaria para arreglos pequeos, dado que la bsqueda por interpolacin
requiere un conjunto de cmputos extras, y la tasa de crecimiento de su
complejidad solo se compensa para arreglos grandes.

REFERENCIAS
Pgina web
Ao de publicacin: 2017
Ttulo de la pgina: Bsqueda Binaria
Nombre del sitio web: Es.wikipedia.org
URL: https://es.wikipedia.org/wiki/Busqueda_Binaria
Fecha de acceso: 09/02/2017

Pgina web
Ao de publicacin: 2017
Ttulo de la pgina: Mtodos de Ordenamiento
Nombre del sitio web: Iutprogramacion.blogspot.mx
URL: http://iutprogramacion.blogspot.mx/2013/02/metodos-de-
ordenamiento.html
Fecha de acceso: 09/02/2017

Pgina web
Ao de publicacin: 2017
Ttulo de la pgina: Mtodos De Bsqueda Secuencial y Binaria
Nombre del sitio web: Macabremoon0.tripod.com
URL: http://macabremoon0.tripod.com/id2.html
Fecha de acceso: 09/02/2017

A continuacin se explican los cuatro mtodos de ordenacin y


los mtodos de bsqueda que veremos en este curso, identifica
y contesta cul mtodo es el explicado en cada uno de los
puntos.

MTODOS DE ORDENACIN

1.- Este mtodo es como ordenar un juego de cartas, a partir de una posicin
inicial compara los valores anteriores y si es menor hace el cambio
correspondiente.

Mtodo de Insercin
2.- Este mtodo compara elementos adyacentes de la lista e intercambia sus
valores si estn desordenados, los valores pequeos van hacia la parte
superior de la lista y los valores ms grandes van hacia el fondo de la lista.

Mtodo Burbuja
3.- Mtodo que consiste en sub dividir un arreglo en arreglos ms pequeos y
ordenar estos.

Mtodo quick sort


4.- En este mtodo se busca el elemento ms pequeo y se coloca en la
primera posicin, se busca el siguiente elemento ms pequeo y se coloca en
la segunda posicin, y as sucesivamente.

Mtodo Seleccin

MTODOS DE BSQUEDA

1.- Este mtodo se aplica a tablas o archivos que ya estn en orden, es un


mtodo de bsqueda que busca un dato dentro de un intervalo en el que se
conocen los valores extremos.
HASH (Transformacin de llaves)
2.- Consiste en recorrer la tabla comparando el valor que se desea localizar con
cada uno de los elementos del mismo hasta que se encuentre.

Bsqueda secuencial
3.- En este mtodo debe estar ordenado el arreglo de lo contrario puede
devolver una posicin errnea e igualmente si hay valores repetidos puede
devolver cualquiera de esos valores.

Bsqueda Binaria

Ejemplifica un caso en el que apliques un mtodo de ordenacin


/*
ordenar un array de n elementos de tipo doubl utilizando el algoritmo de
ordenacin por seleccin
*/
void ordSeleccion (double a[], int n)
{
int indiceMenor, i, j;
/* ordenar a[0]..a[n-2] y a[n-1] en cada pasada */
for (i = 0; i < n-1; i++)
{
/* comienzo de la exploracin en ndice i */
indiceMenor = i;
/* j explora la sublista a[i+1]..a[n-1] */
for (j = i+1; j < n; j++)
if (a[j] < a[indiceMenor])
indiceMenor = j;
/* sita el elemento ms pequeo en a[i] */
if (i != indiceMenor)
{
double aux = a[i];
a[i] = a[indiceMenor];
a[indiceMenor] = aux ;
}
}
}

Вам также может понравиться