Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Identificación:
GL-AA-F-1
Guías de Prácticas de Número de
Revisión No.:
Páginas:
Laboratorio 2
10
Fecha Emisión:
2018/01/31
Laboratorio de:
Programación 3
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 1 de 10
UNIVERSIDAD MILITAR NUEVA GRANADA
Control de Cambios
Fecha de
Descripción del Cambio Justificación del Cambio Elaboración /
Actualización
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 2 de 10
UNIVERSIDAD MILITAR NUEVA GRANADA
3. ASIGNATURA: Programación 3
4. SEMESTRE: III
5. OBJETIVO:
Específicos:
• Utilizar algoritmos de ordenamiento con arreglos
• Comparar los algoritmos a nivel de complejidad
DESCRIPCIÓN (Material,
reactivo, instrumento, software, CANTIDAD UNIDAD DE MEDIDA
hardware, equipo)
NA
DESCRIPCIÓN (Material,
reactivo, instrumento, software, CANTIDAD UNIDAD DE MEDIDA
hardware, equipo)
Computador 1 NA
Software JDK SE (Java
Development Kit - Standard 1 NA
Edition)
Software Netbeans 1 NA
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 3 de 10
UNIVERSIDAD MILITAR NUEVA GRANADA
1. Arreglos
Un arreglo o array es una secuencia de datos del mismo tipo. Los datos se
llaman elementos del array y se enumeran consecutivamente 0,1,2,3,…, estos
valores se denominan valores índice o subíndice del array tal como en
matemáticas <a0, a1, a2, a3, …>. El tipo de elementos almacenados en el array
puede ser cualquier dato simple de Java o de un tipo previamente declarado
como una clase. Normalmente, el array se utiliza para almacenar tipos tales
como char, int, float o double.
Si el nombre del array es a, entonces a[0] es el nombre del elemento que está
en la primera posición y a[1] es el nombre del elemento que está en la segunda
posición, etc.
Creación de un array:
Y en forma general:
Asignación de valores:
Tamaño de un array:
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 4 de 10
UNIVERSIDAD MILITAR NUEVA GRANADA
Cómo Java considera a los arrays como objetos, dispone el atributo length
como el número de elementos:
Arreglos multidimensionales:
Java no tiene el tipo de cadena como tipo de datos primitivos, sino que declara
varias clases para el manejo de cadenas, donde se destaca la clase String:
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 5 de 10
UNIVERSIDAD MILITAR NUEVA GRANADA
Métodos de String:
substring Devuelve una cadena formada por los caracteres entre inicial y final
String c = “Mecatrónica”;
String d = c.substring(4, 8); //d queda con el valor “tron”
2. Algoritmos de ordenamiento
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 6 de 10
UNIVERSIDAD MILITAR NUEVA GRANADA
BUBBLE-SORT(A)
1 for j ← 0 to length[A]- j - 1
2 for i ← 0 to length[A]- i - 2
3 if A[j] > A[j+1]
4 ▹ Intercambie A[j] y A[j+1]
Método de inserción:
INSERTION-SORT(A)
1 for j ← 2 to length[A]
2 do key ← A[j]
3 ▹ Inserte A[j] en la secuencia ordenada A[1 … j - 1].
4 i ← j - 1
5 while i > 0 and A[i] > key
6 do A[i + 1] ← A[i]
7 i ← i - 1
8 A[i + 1] ← key
Método de selección:
SELECTION-SORT(A)
1 for i ← 0 to length[A] - 2
2 min ← i
2 for j ← i+1 to length[A] - 1
3 if A[i] < A[min]
4 min ← j
5 ▹ Intercambie A[i] y A[min]
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 7 de 10
UNIVERSIDAD MILITAR NUEVA GRANADA
Método merge:
mergesort(A, l, r)
1 if r > l
// Encuentre el punto medio para dividir el arreglo en dos mitades:
2 mitad m = l + (r-l)/2
// Llame mergesort para la primera mitad:
3 mergesort(A, l, m)
// Llame mergesort para la segunda mitad:
4 mergesort(A, m+1, r)
// Mezcle las dos mitades ordenadas en 3 y 4:
5 merge(A, l, m, r)
mergesort(A, l, m, r)
//crear un arreglo temporal
1 temp[r – l + 1]
2 i ← l; j ← m +1; k ← 0 //índices para ambos intervalos
// recorrer ambos arreglos y en cada iteración agregar el menor de
//ambos elementos a temp
3 while i < m and j < r
4 if A[i] <= A[j]
5 temp[k] ← A[i]
6 k ← k + 1; i ← i + 1
7 else
8 temp[k] ← A[j]
9 k ← k + 1; i ← i + 1
//agregar elementos a la izquierda del primer intervalo
10 while i < m
11 temp[k] ← A[i]
12 k ← k + 1; i ← i + 1
//agregar elementos a la izquierda del segundo intervalo
13 while j < r
11 temp[k] ← A[j]
12 k ← k + 1; i ← i + 1
//copiar temp al interval original
13 for i ← l to r
14 A[i] ← temp[i - l]
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 8 de 10
UNIVERSIDAD MILITAR NUEVA GRANADA
3.2 Escriba un programa que lea una línea de caracteres y la visualice de tal
forma que las vocales sean sustituidas por el carácter que más veces se repita
en la línea.
3.4 Escriba una clase persona con campos: cédula, nombre y edad. A
continuación, cree un arreglo de objetos persona y posteriormente ordene de
menor a mayor los objetos por cédula o edad. El usuario debe poder escoger el
método de ordenamiento entre mergesort o burbuja. Este programa debe
implementarse con interfaz gráfica.
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 9 de 10
UNIVERSIDAD MILITAR NUEVA GRANADA
[1] NetBeans IDE. (2013). Tutorial Quick Start Guide. Apache NetBeans.
https://netbeans.org/kb/docs/java/quickstart.html
[2] Deitel, P. J., & Deitel, H. M. (2016). Java: como programar. Pearson educación.
http://www.ebooks7-24.com.ezproxy.umng.edu.co/?il=4371
[3] Joyanes Aguilar, L., & Zahonero, I. (2008). Estructuras de datos en Java.
McGraw-Hill
[4] Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to
algorithms. MIT press.
El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en
contra de los derechos de autor
Pagina 10 de 10