Sie sind auf Seite 1von 10

ESTRUCUTRA DE DATOS

ALUMNO: JOSE ALEJANDRO FARIAS SANDOVAL

ACTIVIDAD 1

UNIDAD 2
Actividad 1. Mtodos de ordenacin

El propsito de la siguiente actividad es que identifiques los mtodos de ordenacin, por

lo tanto:

1. Revisa los subtemas del tema 2.1 Mtodos de ordenacin y recupera las lecturas

que se te proponen en la antologa.

2. Con la revisin de los materiales, crea una tabla en un archivo de texto que

contenga 3 columnas, donde se exprese funciones, sintaxis y descripcin de los

mtodos de ordenacin.

Ejemplo:

Funcin Sintaxis Descripcin

3. Guarda tu archivo con la nomenclatura Act1_U2_XXYZ.

4. Enva a tu facilitador(a) tu actividad para recibir retroalimentacin.

Actividad 1. Mtodos de Ordenacin.

Ordenacin Funcin Sintaxis Descripcin


De burbuja Este mtodo consiste Este algoritmo es
en acomodar el vector Entonces: muy deficiente ya que
moviendo el mayor Dado un vector a1, al ir comparando las
hasta la ltima casilla a2, a3, ... an casillas para buscar
comenzando desde la 1) Comparar a1 con el siguiente ms
casilla cero del vector a2 e intercambiarlos grande, ste vuelve a
si a1>a2 (o a1<a2)
hasta haber comparar las ya
2) Seguir hasta que
acomodado el todo se haya ordenadas. A pesar
nmero ms grande comparado an-1 con de ser el algoritmo de
en la ltima posicin, an ordenamiento ms
una vez acomodado 3) Repetir el proceso deficiente que hay,
el ms grande, anterior n-1 veces</a ste es el ms usado
prosigue a encontrar en todos los
y acomodar el lenguajes de
siguiente ms grande programacin.
comparando de
nuevo los nmeros
desde el inicio del
vector, y as sigue
hasta ordenar todo
los elementos el
arreglo.
Shake
Conocido como doble El bucle interno se La idea de este
ordenamiento de efectuara {n/2+1}; el algoritmo es mezclar las
burbuja; se recorre el bucle interior se dos formas del mtodo
arreglo tantas veces ejecutara {n/2+1} de la burbuja.
hasta que ya no haya entonces por la regla
cambios. Prcticamente de la multiplicacin Este algoritmo tiene 2
lo que hace es tomar el tenemos etapas o hasta tres
elemento mayor y lo {n/2+1}*{n/2+1}p etapas:
coloca en su posicin y 0(n2)
al mismo tiempo La primera etapa
tambin coloca el consiste en trasladar los
elemento menor en su elementos ms
posicin. pequeos hacia la parte
izquierda del arreglo,
guardando en una
variable la posicin del
ltimo elemento
intercambiado. La
segunda etapa consiste
en llevar los elementos
ms grandes hacia la
derecha del arreglo,
guardando la posicin
del ltimo elemento
intercambiado en otra
variable, cada pasada
tiene dos etapas.
QuickSort
El ordenamiento de void qs(Lista Fue desarrollada por C.
QuickSort es Nmeros, int inf, int Anthony Hoare en
actualmente el ms sup) 1960.
eficiente y veloz de los {
mtodos de int izq=inf, der=sup, El algoritmo original es
ordenamiento interno. mitad, x; recursivo, pero se
mitad=Nmeros[(izq utilizan versiones
Es tambin conocido +der)/2]; iterativas para mejorar
con el nombre de do{ su rendimiento (los
ordenamiento rpido. while((Nmeros[izq]< algoritmos recursivos
mitad)&&(izq<sup))iz son en general ms
Este mtodo de q++; lentos que los iterativos,
ordenamiento es una while((mitad<Nmer y consumen ms
mejora sustancial del os[der])&&(der>inf))d recursos).
mtodo de intercambio er--;
directo y recibe el if(izq<=der)
nombre de QuickSort {
por la velocidad en que x=Nmeros[izq],
ordena los elementos Nmeros[izq]=Nme
del arreglo. ros[der],
Nmeros[der]=x;
izq++;
der--;
};
}while(izq<=der);
if(inf<der)
qs(Numeros,inf,der);
if(izq<sup)
qs(Numeros,izq,sup)
;
};

void QuickSort(Lista
Nmeros, int n)
{
qs(Numeros,0,n-1);
};

Insercin Este mtodo consiste desde I = 2 hasta N El mtodo se basa en


Directa en insertar un hacer comparaciones y
elemento en el vector insertar X[I] desplazamientos
en una parte ya en el lugar adecuado sucesivos. El
ordenada de este Entre X [I]. . algoritmo de
vector y comenzar de X[I - 1] clasificacin de un
nuevo con los fin desde vector X para N
elementos restantes. Esta accin elementos se realiza
Por ser utilizado repetitiva insertar con un recorrido de
generalmente por los se realiza ms todo el vector y la
jugadores de cartas fcilmente con la insercin del
se le conoce tambin inclusin de un elemento
por el nombre de valor centinela o correspondiente en el
mtodo de la baraja. bandera (SW). lugar adecuado. El
recorrido se realiza
Inicio desde el segundo
// ordenacin elemento al n-esimo.
desde I =2 hasta N
hacer
AUXI= x(I)
fin

Shell Cuando el incremento void Ordenamiento por


toma un valor de 1, ordenacion_shell intervalos
todos los elementos (Dato * A, int N) decrecientes,
pasan a formar parte { nombrado asi debido
int incr = N / 2, p, j;
del subgrupo y se a su inventor Donald
Dato tmp;
aplica insercin do
Shell, este algoritmo
directa. El mtodo se { ordena subgrupos de
basa en tomar como for (p = incr + 1; p < elementos separados
salto al principio N/2, N; p++) K unidades respecto
siendo N el nmero { de su posicin en el
de elementos, y luego tmp = A[p]; arreglo. El valor K es
se va reduciendo a la j = p - incr; llamado Intervalo.
mitad en cada while ((j >= 0) && Despus de que los
repeticin hasta lograr (tmp < A[j])) primeros K
un valor de 1. { Subgrupos fueron
A[j + incr] = A[j];
ordenados
7
Algoritmos de
generalmente
ordenacin utilizando Insercin
j -= incr; Directa, se escoge un
} nuevo valor de K ms
A[j + incr] = tmp; pequeo, y el arreglo
} es de nuevo partido
incr /= 2; entre el nuevo
} conjunto de
while (incr > 0); subgrupos. Cada uno
} de los subgrupos
mayores es ordenado
y el proceso se repite
de nuevo con un valor
ms pequeo de K.
Insercin El proceso comienza Para (i=2 hasta N) El algoritmo de
Binaria comparando el { insercin directa se
elemento central del aux=A(i); mejora facilmente al
arreglo con el valor izq=1; notar que la
der=i-1;
buscado. Si ambos secuencia destino
mientras (izq<=der)
coinciden finaliza la {
aj..ai-1, donde debe
bsqueda. Si ocurre insertar el nuevo
as, el elemento m=(parte elemento, ya esta
buscado ser mayor o entera((izq+der)/2)); ordenado. Por eso
menor en sentido si(aux<A(m)) puede ser empleado
estricto que el central { un mtodo ms
del arreglo. der=m-1; rpido para
Si el elemento } determinar el punto
Si no
buscado es mayor se { de insercin. La
procede a hacer Izq=m+1 ; eleccin obvia es una
bsqueda binaria en } bsqueda binaria que
el subarray superior, } prueba la secuencia
j=i-1 ;
si el elemento destino en la mitad y
mientras (j>=izq)
buscado es menor continua buscando
{
que el contenido de la A(j+1)=A(j); hasta encontrar el
casilla central, se j=j-11; punto de insercin. El
debe cambiar el } algoritmo de
segmento a A(izq)=auz; clasificacin
considerar al } modificado recibe el
segmento que esta a nombre de insercin
la izquierda de tal sitio binaria.
central.
Hashing La idea de este SHA-1: algoritmo de Algoritmo que se
mtodo es la de hash seguro utiliza para generar
dividir el valor de la Algoritmo de sntesis un valor de hash para
llave entre un numero que genera un hash algn dato, como por
de 160 bits. Se
apropiado, y despus ejemplo claves. Un
utiliza, por ejemplo,
utilizar el residuo de algoritmo de hash
como algoritmo para
la divisin como la firma digital. hace que los cambios
direccin relativa para MD2 y MD4 que se produzcan en
el registro (direccin = Algoritmos de hash los datos de entrada
llave mdulo divisor). que generan un valor provoquen cambios
Mientras que el de 128 bits. en los bits del hash.
valor calculado real MD5 Gracias a esto, los
de una direccin Esquema de hash de hash permiten
relativa, dados tanto hash de 128 bits detectar si un dato ha
un valor de llave muy utilizado para sido modificado.
autenticacin cifrada.
como el divisor, es
Gracias al MD5 se
directo; la eleccin del consigue, por
divisor apropiado ejemplo, que un
puede no ser tan usuario demuestre
simple. que conoce una
contrasea sin
necesidad de enviar
la contrasea a
travs de la red.
De Selecciona el valor void Selecciona el ms
seleccin ms pequeo del Seleccin(Lista pequeo de los
conjunto y coloca en Nmeros, int elementos del arreglo
la posicin adecuada, Largo) y lo intercambia con
repitiendo el proceso { el que se encuentra
para todo el arreglo int en la primera
pos1,menor,recorr posicin, luego repite
e,auxiliar; el proceso a partir de
/*comienza en la la siguiente posicin
primera posicin y de forma sucesiva
llega hasta uno hasta ordenar
antes del fin*/ totalmente el arreglo.
for(pos1=0;pos1<(
Largo-1);pos1++)
{
for(menor=pos1,re
corre=pos1+1;reco
rre<Largo;
recorre++)
if(Nmeros[menor]
>Nmeros[recorre]
)menor=recorre;
auxiliar=Nmeros[
menor];
Nmeros[menor]=
Nmeros[pos1];
Nmeros[pos1]=au
xiliar;
};
};
Enumeraci Compara cada El algoritmo de
n elemento contra los Enumeracin que
dems, en el presentamos requiere
transcurso de la que se modique el
problema inicial para
evaluacin cuenta la
que los coecientes
cantidad de de la funcin
elementos menores al objetivo sean
elemento analizado, positivos y estn
en el proceso genera ordenados. Para
una enumeracin, el conseguirlo se
nmero dado a cada ordenan los trminos
elemento indica su de la funcin
posicin en el objetivo por el valor
conjunto. absoluto del
coeciente. A
continuacin se
realiza el cambio
Xi por yj si su
coeficiente es positivo y
por 1yj si es negativo.
Merger Sort El mtodo ms m=tamao del Merge Sort est
sencillo, pero menos vector1 basado en la tcnica
eficaz, consiste en n=tamao del de diseo de
colocar una lista vector2 algoritmos Divide y
detrs de la otra y int Vencers, de la cual
luego ordenarla. Sin m,n,i=0,j=0,k=0,p; se habl aqu mismo
embargo este mtodo while( i < m && j < hace un tiempo.
no aprovecha la n ){ Recordando un poco,
propiedad de que los if( vec1[i] <= esta tcnica consiste
vectores A y B ya vec2[j] ){ en dividir el problema
estn ordenados, por a resolver en
ello debe recurrir mezcla[k]=vec1[i]; subproblemas del
normalmente al i++; mismo tipo que a su
sistema de mezcla el } vez se dividirn,
cual cosiste en else{ mientras no sean
comparar los dos suficientemente
primeros elementos mezcla[k]=vec2[j]; pequeos o triviales.
de los vectores (A y j++;
B) y enviar al menor }
al tercer vector, k++;
continuando con el }
elemento comparado if( i>= m){
pero no enviado con for( p=j; p < n;
el siguiente elemento p++){
del vector que
contiene al elemento mezcla[k]=vec2[p];
menor comparado k++;
anteriormente y as }
sucesivamente. Una }
vez que se terminaron if( j>=n ){
los elementos de un for( p=i; p < m;
vector, se procede a p++ ){
vaciar los elementos
restantes del otro mezcla[k]=vec1[p];
vector. k++;
}
}
Radix Sort Empezar en el dgito ist sort(s, j) Este ordenamiento se
ms significativo y list s; basa en los valores
avanzar por los de los dgitos reales
dgitos menos int j; en las
significativos mientras representaciones de
{
coinciden los dgitos int i;
posiciones de los
correspondientes en list head[M], t; nmeros que se
los dos nmeros. struct rec aux; ordenan.
El nmero con el extern list Last;
dgito ms grande en if (s==NULL) Por ejemplo el
la primera posicin en return(s); nmero 235 se
la cual los dgitos de if ( s->next == escribe 2 en la
los dos nmeros no NULL ) {Last = s; posicin de centenas,
coinciden es el mayor return(s);} un 3 en la posicin de
de los dos (por if ( j>D ) { decenas y un 5 en la
for (Last=s; Last-
supuesto s coinciden >next!=NULL; Last = posicin de unidades.
todos los dgitos de Last->next);
ambos nmeros, son return( s );
iguales). }
for (i=0; ik );
t = s;
s = s->next;
t->next = head[i];
head[i] = t;
}
/*** sort recursively
***/
t = &aux;
for (i=0; inext =
sort( head[i], j+1 );
t = Last;
}
return(aux.next);
}

Heap Sort El Heapsort est void Su desempeo es en


basado en el uso de HeapSort(Lista promedio tan bueno
un tipo especial de Nmeros) como el Quicksort y
rbol binario (llamado { se comporta mejor
apilamiento) para Heap=Construir_H que este ltimo en los
estructurar el proceso eap(Nmeros); peores casos.
de ordenamiento. La while(Heap_vacio( Aunque el Heapsort
estructura de Heap)==0) tiene un mejor
ramificacin del rbol { desempeo general
conserva el nmero Auxiliar=Extraer_M que cualquier otro
de comparaciones ax(Heap); mtodo presentado
necesarias en Insertar(Ordenada, de clasificacin
. Auxiliar); interna, es bastante
Ultimo=Ultimo_Hea complejo de
p(Heap); programar. El
Nmeros=Coloca_ Heapsort fue
Cabeza(Ultimo,Nu desarrollado en 1964
meros); por J. W. J. Williams.
Heap=Reconstruir_
Heap(Heap);
};
};

Fuentes de consulta:
http://www.estructuradedatos.galeon.com/burbujatext.htm
http://ffgghhii.galeon.com/insercion.htm
http://systemyomaco.galeon.com/ordenamiento.html
http://www.slideshare.net/rolfpinto/algortimos-de-ordenamiento
http://www.slideshare.net/pao.music/ordenamiento-por-mtodo-de-insercin-
binaria
http://juan-pato.blogspot.mx/2009/05/metodo-de-busqueda-hashing.html
http://www.estructuradedatos.galeon.com/inter_mer.htm
http://www.educacioninformatica.com/modules/tutorials/tutoriales/orden/hea
psort.html
http://es.tldp.org/Tutoriales/doc-programacion-algoritmos-
ordenacion/alg_orden.pdf

Das könnte Ihnen auch gefallen