Está en la página 1de 8

EXAMEN

ALGORITMOS Y ESTRUCTURAS DE DATOS II


PARTE I
ORIENTACIONES:

 Guarde este archivo con su nombre completo


 Responda a las preguntas dentro del cuadro correspondiente a cada una.
 Una vez respondido, guarde nuevamente y envíe este archivo por correo electrónico a
la siguiente dirección aherrera@unan.edu.ni

RESPONDA A LAS SIGUIENTES INTERROGANTES:

I. ELABORE UN CUADRO SINÓPTICO SOBRE LOS DIFERENTES METODOS DE


ORDENAMIENTO. DETALLE LO MAS QUE PUEDA
II. ELABORE UN CUADRO SINÓPTICO SOBRE LA BUSQUEDA, TIPOS DE
BUSQUEDA Y CLASIFICACION DENTRO DE ESOS TIPOS.
III. CONTESTE LAS SIGUIENTES PREGUNTAS, SEA PRECISO EN SUS
RESPUESTAS:

A. Defina los términos de ordenamiento y búsqueda, explique cómo se relacionan.

Un algoritmo de ordenamiento es un conjunto de instrucciones, las cuales podemos


seguir y lograr ordenar una secuencia de elementos, en cuanto a los algoritmos de
búsqueda como su nombre lo indica son aquellos que nos permitirán localizar un
elemento en una lista o vector, la mayoría de los algoritmos de búsqueda requieren que
la lista esté previamente ordenada por lo cual los algoritmos de búsqueda y los de
ordenamiento están relacionados entre sí.

B. En que consiste el método Hash, explique sus ventajas.

Consiste en una clasificación de los datos para tener una mejor una implementación de
las búsquedas, existe varios métodos para el tratamiento de las colisiones siendo el
encadenamiento el más eficiente actualmente utilizando listas ligadas. Una de las
principales ventajas de este método es que aumenta la eficiencia de las búsquedas ya que
permite un acceso más directo a los datos.

C. Realice un análisis y compare los métodos de ordenamiento QuickSort y Shell


en cuanto a sus ventajas y desventajas

*Ventajas de QuickSort: *Desventajas de QuickSort


-Muy rápido. – Implementación Complicada
-No requiere memoria adicional.
-Recursividad.
*Ventajas de HeapSort: *Desventajas de HeapSort
-Su desempeño es en promedio tan bueno - Complejo de programación
como el Quicksort y se comporta mejor que - Estable con respecto a otro método de ordenamiento
este último en los peores casos. - Sí los datos están inversos, HeapSort baja eficiente
- No ocupa espacio extra en la memoria.
Analisis: El competidor más directo de QuickSort es HeapSort. Por lo general, Heapsort es algo más
lento que Quicksort en el caso de que no haya una entrada muy grande, en el peores de los casos
HeapSort es más estable la eficiencia.
D. Escriba 3 ventajas del método BinSort

- Realiza clasificaciones de valores a través de rangos


- El tiempo para clasificar los elementos es constante
- Las claves repetidas ingresan en un mismo casillero por lo que no se realizan
E. Explique en que consiste
comparaciones el método HeapSort.
entre claves.

Es un metodo de ordenamiento de eficiencia logaritmica, este implementa el árbol Heap,


que es una estructura de arbol binario en la que cada nodo padre debe ser mayor que sus
dos hijos,al ser un arbol binario este solo admite dos hijos, se aplica esta propiedad al
arreglo para luego intercambiar el primer elemento con el ultimo, ya que debido a la
propiedad del heap el valor mayor siempre quedara en la raiz, mientras que el menor
estara al final, se hace esto reduciendo el tamaño del heap hasta
que los datos queden ordenados

F. Explique las similitudes y diferencias entre el Método Mezcla Directa y Método


de Intercalación de Archivos.
Similitudes: Ambos implementan dos archivos auxiliares ambos realizan una fucion de
los archivos ya que resulta mas facil ordenar dos archivos separados que uno solo
ambos son metodos de ordenamiento externos
Diferencias: Para la intercalacion de archivos es necesario que los datos que se
encuentran en los archivos separados se encuentren previamente ordenados, en la
mezcla directa no existe esta necesidad.

La intercalacion de archivo necesita de dos archivos de entrada para solo realizar la


fucion de estos, la mezcla directa, recibe un solo archivo de entrada y apartir de este
realiza las debidas particiones y fuciones que el numero de estas sera similar a la
cantidad de datos que contenga el archivo.
PARTE II

ORIENTACIONES:

 Cree un proyecto con su nombre completo.


 Se está proporcionando el archivo Paises.txt, el cual fue creado con la siguiente
definición de registro:
class Registro
{
public int codigo;
public string nom_pais;
public int cant_hab;
public int continente;
}
El campo continente es un valor entero que significa: 1: América, 2: Europa, 3:Asia, 4:
África, 5: Oceanía.
 Copie en el directorio BIN/DEBUG de su nuevo proyecto el archivo Paises.txt que se
está proporcionando.
 Leer la teoría del método de ordenamiento interno: TRANSPOSICION IMPAR PAR
proporcionada a continuación.
 Implementar un proyecto con métodos para:
o Pasar los datos del archivo Paises.txt que se proporcionó, a un arreglo de
registros
o Ordenar el arreglo de registros aplicando el método TRANSPOSICION IMPAR
PAR que se le está presentado.
o Imprimir los datos ordenados
o Guardar los datos ordenados en un nuevo archivo Paisesordenados.txt
 Una vez terminado el proyecto, comprímalo y envíe este archivo por correo electrónico a
la siguiente dirección aherrera@unan.edu.ni

METODO TRANSPOSICION IMPAR PAR

En computación, una ordenación impar-par u ordenación por transposición impar-par (también conocido
como ordenación por ladrillos) es un algoritmo de ordenación relativamente sencillo, desarrollado
originalmente para uso en procesadores paralelos con interconexiones locales. Basa su funcionamiento en
comparaciones; parecido al ordenamiento de burbuja, con el cual comparte muchas características.
Funciona comparando todos los pares (elementos adyacentes) con índices impar/par que se encuentran
en la lista y, si un par está en el orden incorrecto (el primero es más grande que el segundo) los elementos
son reordenados. El próximo paso repite esto para pares adyacentes con índices par/impar que se
encuentran en la lista. De esta forma alterna entre pares (de elementos adyacentes) impar/par y par/impar
hasta que la lista se encuentre ordenada.
Ordenación por mezcla impar-par de Batcher
Un algoritmo parecido pero más eficiente es el de ordenación por mezcla impar-par de Batcher, utilizando
operaciones de comparación e intercambio y operaciones de barajeo-perfecto. El método de Batcher es
eficaz en procesadores paralelos con conexiones de largo rango. 4

Algoritmo
Pase a través del arreglo varias veces.
En el primer paso compare x[i] con x[i+1] para todos los valores de i impar.
En el segundo paso compare x[i] con x[i+1] para todos los valores de i pares.
Cada vez que x[i] > x[i+1] en los dos pasos anteriores intercámbielos.
Continúe en forma alterna hasta que el arreglo este ordenado (es decir, hasta que ya no
hayan intercambios).

Sort(int a[], int cant)


{
int temp,i,j, sorted = 0;

while(sorted==0)
{
sorted = 1;
for( i = 1; i < cant-1; i += 2)
{
if(a[i] > a[i+1])
{
temp= a[i];
a[i] = a[i+1];
a[i+1] = temp;
sorted = 0;
}
}

for( i = 0; i < cant-1; i += 2)


{
if(a[i] > a[i+1])
{
temp= a[i];
a[i] = a[i+1];
a[i+1] = temp;
sorted = 0;
}
}
}

También podría gustarte