You are on page 1of 7

Estructura de datos

Unidad 2. Ordenacin y bsqueda


Ingeniera en Desarrollo de software
Cuatrimestre 06

Asignatura:
Estructuras de Datos

Clave: 160920621/150920621

Actividades de la unidad

Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software

Antologa
| Nombre
la asignatura
Estructura
de de
datos
Unidad 1. Nombre

Unidad 2. Ordenacin y bsqueda


Actividad 1. Identificacin de mtodos de bsqueda

La siguiente actividad te permitir identificar de mtodos de bsqueda en distintos


casos.
Por lo tanto, atiende a las siguientes indicaciones:
1. Crea un archivo de texto.
2. Menciona y define los mtodos de bsqueda existentes.
3. Define y explica mtodo de bsqueda secuencial.
4. Define y explica mtodo de bsqueda binaria.
5. Define y explica mtodo de bsqueda por interpolacin.
6. Menciona y ejemplifica en qu casos conviene aplicar cada uno de los mtodos
de bsqueda (secuencial, binaria e interpolacin).
7. Menciona de forma clara y puntual las ventajas y desventajas de utilizar cada uno
de los mtodos de bsqueda vistos a lo largo de la Unidad 2.
8. Redacta un caso e indica qu mtodo de bsqueda resulta ms eficiente en su
uso.
9. Guarda la actividad con el nombre DEDA_U2_A1_XXYZ. Sustituye las XX por
las dos primeras letras de tu primer nombre, la Y por la inicial de tu primer apellido
y la Z por la inicial de tu segundo apellido.
10. Enva a tu facilitador(a) tu actividad para recibir retroalimentacin.

Actividad 2. Identificacin de errores en mtodos de ordenacin


La siguiente actividad te permitir identificar errores en la codificacin de un caso prctico
en el que se han utilizado mtodos de ordenacin.
Caso: Patentes
Las antiguas patentes (de automviles), por ejemplo PL7812, estn compuestas por un
string de dos caracteres, en el ejemplo PL, y por un nmero entero de cuatro dgitos, en
el ejemplo 7812. Suponga que exista una clase Patente y otra TablaDePatentes de la
siguiente forma:
public class Patente {

Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software

Antologa
| Nombre
la asignatura
Estructura
de de
datos
Unidad 1. Nombre

Unidad 2. Ordenacin y bsqueda


private String letras ;
private int numero ;
public Patente () {}
public String obtLetras () { return letras ; }
public int obtNumero () { return numero ; }
}
public class TablaDePatentes {
private String [] tabla ;
public TablaDePatentes () { tabla = new String [9999]; }
public boolean buscar (Patente patente ) {}
otros mtodos
}

La idea es que TablaDePatentes almacena en el atributo tabla todas las patentes


autorizadas a estacionarse en el campus San Joaqun. En particular, si la patente
PL7812 est autorizada, entonces tabla [7812] = PL, y si la patente JK2345 est
autorizada, entonces tabla [2345] = JK. Adems, si dos o ms patentes autorizadas
tienen el mismo nmero, entonces sus pares de letras aparecen consecutivamente en el
string correspondiente de tabla. Por ejemplo, si las patentes PL7812 y MB7812 estn
autorizadas, entonces tabla [7812] = PLMB; y si las patentes JK2345, RC2345 y
DW2345 estn todas autorizadas, entonces tabla [2345] = JKRCDW.
Escriba el mtodo buscar de la clase TablaDePatentes, que busca rpidamente la
Patente en el atributo tabla, y devuelve true (verdadero) si patente est en tabla, y false
(falso) en caso contrario.
Criterios de solucin:
Lo primero que tenemos que hacer es declarar el mtodo como nos indican en el
enunciado. Luego, con los mtodos de la clase Patente, obtenemos las letras y los
nmeros que la componen. Con el nmero de la patente obtenemos lo almacenado en el
arreglo y luego debemos recorrer este string obteniendo substring de largo 2 e ir
comparando cada substring con las letras de la patente a buscar. Si coincide con alguno
retornamos true, de lo contrario retornamos false.
Posible solucin:
public boolean buscar (Patente patente ) {
int num = patente. obtNumero ();
String letras = patente . obtLetras ();
String validas = tabla [ num ];
if( validas != null ){
int largo = validas . length ();
int k = 1;
while (k < largo ) {
if ( letras . equals ( validas . substring (k - 1, k + 1)))
return true;
k = k + 2;
}
}
return false ;
}

Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software

Antologa
| Nombre
la asignatura
Estructura
de de
datos
Unidad 1. Nombre

Unidad 2. Ordenacin y bsqueda


Ahora:
1. Crea un proyecto nuevo en NetBeans.
2. Transcribe el cdigo que se encuentra lneas arriba.
3. Identifica los errores en el cdigo.
4. Con comentarios (// o /*, */) documenta los errores encontrados y realiza las
correcciones necesarias para que el programa pueda funcionar correctamente.
5. Una vez corregido el cdigo, ejecuta el programa.
6. Si la ejecucin ha sido correcta guarda el archivo con los comentarios realizados.
7. Documenta el cdigo explicando de forma breve pero concisa las partes del mismo
donde se ha empleado algn mtodo de ordenacin, seala de forma puntual qu
mtodo de ordenacin se ha empleado y por qu.
8. Guarda la actividad con el nombre DEDA_U2_A2_XXYZ. Sustituye las XX por las
dos primeras letras de tu primer nombre, la Y por la inicial de tu primer apellido y la Z
por la inicial de tu segundo apellido.
9. Enva a tu facilitador(a) tu actividad para recibir retroalimentacin.
10. Consulta los criterios de evaluacin de la actividad.

Evidencia de aprendizaje. Programa que emplee mtodos de


ordenacin y bsqueda
La siguiente actividad te permitir ejemplificar el funcionamiento de los mtodos de
ordenacin y bsqueda, utilizando como herramienta de desarrollo el IDE de NetBeans
(no importando la versin), por lo tanto, crears un proyecto nuevo en donde puedas
generar un programa para que apliques diferentes mtodos de ordenacin y
bsqueda.
Problema: Distancia entre puntos
Implementa un programa que busque la mayor distancia entre un grupo de puntos e
identifique los puntos que estn a la mayor distancia encontrada.
Para esto, pide al usuario el nmero de puntos a utilizar y luego crea cada uno de los
puntos.
Para hacerle ms fcil la implementacin cuenta con la clase Punto mostrada a
continuacin:
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software

Antologa
| Nombre
la asignatura
Estructura
de de
datos
Unidad 1. Nombre

Unidad 2. Ordenacin y bsqueda


import iic1103Package .*;
public class Punto {
private double x;
private double y;
public Punto (double x, double y) {
this.x = x;
this.y = y;
}
public Punto () {
double r;
r = Aleatorio . real (0, 1000);
this.x = r;
r = Aleatorio . real (0, 1000);
this.y = r;
}
public double getX () {
return x;
}
public double getY () {
return y;
}
public double distancia ( Punto p) {
return ( Math . sqrt (( this.x - p. getX ()) * (this.x - p. getX ())
+ (this.y - p. getY ()) * (this.y - p. getY ())));

}
}
Luego de la ejecucin, tu programa debe mostrar un mensaje como el siguiente:
\\La mayor distancia en el conjunto de puntos es 1058.91295913645
e involucra al punto 0: (10.920578500052901,15.64305239454644)
y al punto 4: (644.0265655345464,864.4501354282548)
Ya que realizaste tu programa, en un archivo de texto:
1. Documenta el cdigo indicando puntualmente el/los mtodo (s) empleado (s)
para ordenar y buscar.
2. Documenta qu variaciones se podran generar en la ejecucin del programa
de haberse empleado otros mtodos de ordenacin y/o bsqueda. Apoya tu
documentacin con recortes de pantalla.
3. Guarda el programa y tu archivo de texto en una carpeta comprimida con el
nombre DEDA_U2_EA_XXYZ. No olvides consultar los criterios de evaluacin
para conocer los parmetros de la actividad.
4. Enva el documento a tu Facilitador(a) y espera retroalimentacin de tu
evidencia.

Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software

Antologa
| Nombre
la asignatura
Estructura
de de
datos
Unidad 1. Nombre

Unidad 2. Ordenacin y bsqueda


Autoevaluacin
Ahora, contesta el siguiente cuestionario. Cabe sealar que la actividad no es ponderable
y tiene como propsito que puedas autodiagnosticar tus avances en la asignatura:

1. Consiste en recorrer el arreglo hasta encontrar el elemento buscado


(elemento por elemento). Si se llega hasta el ltimo elemento y an no se
ha encontrado, entonces no se encuentra en la lista.
a. Bsqueda secuencial
b. Bsqueda por interpolacin
c. Bsqueda binaria
2. Los elementos de la lista deben estar previamente ordenados.
a. Bsqueda secuencial
b. Bsqueda por interpolacin
c. Bsqueda binaria
3. Este mtodo consiste en tratar de acertar en qu parte del intervalo est la
clave que se est buscando en lugar de ciegamente dividir el arreglo a la
mitad
a. Bsqueda secuencial
b. Bsqueda por interpolacin
c. Bsqueda binaria
4. Mtodo que requiere O
elementos.

operaciones para ordenar una lista de n

a. Ordenacin por seleccin


b. Ordenacin por burbuja
c. Ordenacin por insercin
5. Tambin se le conoce como ordenacin por hundimiento.
a. Ordenacin por seleccin
b. Ordenacin por burbuja
c. Ordenacin por insercin
6. Este mtodo es similar al proceso tpico de ordenar tarjetas de nombres
(cartas de una baraja) por orden alfabtico, que consiste en insertar un
Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software

Antologa
| Nombre
la asignatura
Estructura
de de
datos
Unidad 1. Nombre

Unidad 2. Ordenacin y bsqueda


nombre en su posicin correcta dentro de una lista o archivo que ya est
ordenado.
a. Ordenacin por seleccin
b. Ordenacin por burbuja
c. Ordenacin por insercin

Ciencias Exactas, Ingenieras y Tecnologa | Desarrollo de Software

You might also like