SlideShare una empresa de Scribd logo
Vectores y matrices - Java - 0 - © Fernando Berzal
Vectores y matrices
Arrays
Declaración
Creación
Acceso a los elementos de un array
Manipulación de vectores y matrices
Algoritmos de ordenación
Ordenación por selección
Ordenación por inserción
Ordenación por intercambio directo (método de la burbuja)
Ordenación rápida (QuickSort)
Algoritmos de búsqueda
Búsqueda lineal
Búsqueda binaria
Apéndice: Cadenas de caracteres
Vectores y matrices - Java - 1 - © Fernando Berzal
Arrays
Un array es una estructura de datos
que contiene una colección de datos del mismo tipo
Ejemplos
Temperaturas mínimas de los últimos treinta días
Valor de las acciones de una empresa durante la última semana
…
Propiedades de los arrays
- Los arrays se utilizan como contenedores para almacenar datos
relacionados (en vez de declarar variables por separado para cada
uno de los elementos del array).
- Todos los datos incluidos en el array son del mismo tipo. Se
pueden crear arrays de enteros de tipo int o de reales de tipo
float, pero en un mismo array no se pueden mezclar datos de
tipo int y datos de tipo float.
- El tamaño del array se establece cuando se crea el array (con el
operador new, igual que cualquier otro objeto).
- A los elementos del array se accederá a través de la posición que
ocupan dentro del conjunto de elementos del array.
Terminología
Los arrays unidimensionales se conocen con el nombre de vectores.
Los arrays bidimensionales se conocen con el nombre de matrices.
Vectores y matrices - Java - 2 - © Fernando Berzal
Declaración
Para declarar un array,
se utilizan corchetes para indicar que se trata de un array
y no de una simple variable del tipo especificado.
Vector (array unidimensional):
tipo identificador[];
o bien
tipo[] identificador;
donde
tipo es el tipo de dato de los elementos del vector
identificador es el identificador de la variable.
Matriz (array bidimensional):
tipo identificador[][];
o bien
tipo[][] identificador;
NOTA: No es una buena idea que el identificador del array
termine en un dígito, p.ej. vector3
Vectores y matrices - Java - 3 - © Fernando Berzal
Creación
Los arrays se crean con el operador new.
Vector (array unidimensional):
vector = new tipo[elementos];
Entre corchetes se indica el tamaño del vector.
tipo debe coincidir con el tipo con el que se haya declarado el vector.
vector debe ser una variable declarada como tipo[]
Ejemplos
float[] notas = new float[ALUMNOS];
int[] temperaturas = new int[7];
Matriz (array bidimensional):
matriz = new tipo[filas][columnas];
Ejemplo
int[][] temperaturas = new int[12][31];
Vectores y matrices - Java - 4 - © Fernando Berzal
Uso
Para acceder a los elementos de un array,
utilizamos índices
(para indicar la posición del elemento dentro del array)
Vector (array unidimensional):
vector[índice]
- En Java, el índice de la primera componente
de un vector es siempre 0.
- El tamaño del array puede obtenerse
utilizando la propiedad vector.length
- Por tanto, el índice de la última componente es
vector.length-1
Ejemplo
float[] notas = new float[3];
Vectores y matrices - Java - 5 - © Fernando Berzal
Matriz (array bidimensional):
matriz[índice1][índice2]
Una matriz, en realidad, es un vector de vectores:
- En Java, el índice de la primera componente
de un vector es siempre 0, por lo que matriz[0][0]
será el primer elemento de la matriz.
- El tamaño del array puede obtenerse
utilizando la propiedad array.length:
§ matriz.length nos da el número de filas
§ matriz[0].length nos da el número de columnas
- Por tanto, el último elemento de la matriz es
matriz[matriz.length-1][matriz[0].length-1]
Inicialización en la declaración
Podemos asignarle un valor inicial
a los elementos de un array en la propia declaración
int vector[] = {1, 2, 3, 5, 7};
int matriz[][] = { {1,2,3}, {4,5,6} };
El compilador deduce automáticamente las dimensiones del array.
Vectores y matrices - Java - 6 - © Fernando Berzal
Manipulación
de vectores y matrices
Las operaciones se realizan componente a componente
Ejemplo: Suma de los elementos de un vector
static float media (float datos[])
{
int i;
int n = datos.length;
float suma = 0;
for (i=0; i<n; i++)
suma = suma + datos[i];
return suma/n;
}
No es necesario utilizar todos los elementos de un vector, por lo que,
al trabajar con ellos, se puede utilizar una variable entera adicional que
nos indique el número de datos que realmente estamos utilizando:
El tamaño del vector nos dice cuánta memoria se ha reservado para
almacenar datos del mismo tipo, no cuántos datos del mismo tipo
tenemos realmente en el vector.
Ejemplo: Suma de los n primeros elementos de un vector
static float media (float datos[], int n)
{
int i;
float suma = 0;
for (i=0; i<n; i++)
suma = suma + datos[i];
return suma/n;
}
Vectores y matrices - Java - 7 - © Fernando Berzal
Ejemplo
public class Vectores
{
public static void main (String[] args)
{
int pares[] = { 2, 4, 6, 8, 10 };
int impares[] = { 1, 3, 5, 7, 9 };
mostrarVector(pares);
System.out.println("MEDIA="+media(pares));
mostrarVector(impares);
System.out.println("MEDIA="+media(impares));
}
static void mostrarVector (int datos[])
{
int i;
for (i=0; i<datos.length; i++)
System.out.println(datos[i]);
}
static float media (int datos[])
{
int i;
int n = datos.length;
int suma = 0;
for (i=0; i<n; i++)
suma = suma + datos[i];
return suma/n;
}
}
Vectores y matrices - Java - 8 - © Fernando Berzal
static int[] leerVector (int datos)
{
int i;
int[] vector = new int[datos];
for (i=0; i<datos; i++)
vector[i] = leerValor();
return vector;
}
IMPORTANTE:
Cuando se pasa un array como parámetro,
se copia una referencia al array y no el conjunto de valores en sí.
Por tanto, tenemos que tener cuidado con los efectos colaterales
que se producen si, dentro de un módulo,
modificamos un vector que recibimos como parámetro.
Ejemplo
El siguiente método lee los elementos de un vector ya creado
static void leerVector (int[] datos)
{
int i;
for (i=0; i<datos.length; i++)
datos[i] = leerValor();
}
Vectores y matrices - Java - 9 - © Fernando Berzal
Copia de arrays
La siguiente asignación sólo copia las referencias,
no crea un nuevo array:
int[] datos = pares;
Para copiar los elementos de un array,
hemos de crear un nuevo array y copiar los elementos uno a uno
int[] datos = new int[pares.length];
for (i=0; i<pares.length; i++)
datos[i] = pares[i]
También podemos utilizar una función predefinida
en la biblioteca de clases estándar de Java:
System.arraycopy(from,fromIndex,to,toIndex,n);
int[] datos = new int[pares.length];
System.arraycopy(pares,0,datos,0,pares.length);
EXTRA:
La biblioteca de clases de Java incluye una clase auxiliar llamada
java.util.Arrays que incluye como métodos algunas de las tareas
que se realizan más a menudo con vectores:
- Arrays.sort(v) ordena los elementos del vector.
- Arrays.equals(v1,v2) comprueba si dos vectores son iguales.
- Arrays.fill(v,val) rellena el vector v con el valor val.
- Arrays.toString(v) devuelve una cadena que representa
el contenido del vector.
- Arrays.binarySearch(v, k) busca el valor k dentro del vector
v (que previamente ha de estar ordenado).
Vectores y matrices - Java - 10 - © Fernando Berzal
Ejemplos
Un programa que muestra los parámetros
que le indicamos en la línea de comandos:
public class Eco
{
public static void main(String args[])
{
int i;
for (i=0; i<args.length; i++)
System.out.println(args[i]);
}
}
Un método que muestra el contenido de una matriz:
public static void mostrarMatriz (double matriz[][])
{
int i,j;
int filas = matriz.length;
int columnas = matriz[0].length;
// Recorrido de las filas de la matriz
for (i=0; i<filas; i++) {
// Recorrido de las celdas de una fila
for (j=0; j<columnas; j++) {
System.out.println ( “matriz[”+i+“][”+j+“]=”
+ matriz[i][j] );
}
}
}

Más contenido relacionado

La actualidad más candente

Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
letty20151998
 
Ape unidad4
Ape unidad4Ape unidad4
Ape unidad4
01leticia01
 
Vectores - Informática
Vectores - InformáticaVectores - Informática
Vectores - Informática
compumet sac
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
Sneydert Jhenz
 
Arreglos
ArreglosArreglos
Arreglos
guest5ed53f
 
Array
Array Array
Array
Jose Eamirez
 
Tema3
Tema3Tema3
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
IronAngel
 
Arreglos java
Arreglos javaArreglos java
Arreglos java
Cesar Celis
 
Leccion 5 Java
Leccion 5 JavaLeccion 5 Java
Leccion 5 Java
SparTacuS1286
 
Arreglos
ArreglosArreglos
Arreglos
junior zamora
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
Eduardo Campazzo
 
Static Alexander_Eivar
Static Alexander_EivarStatic Alexander_Eivar
Static Alexander_Eivar
Alexander Eivar
 
Presentacion de vectores y matrices
Presentacion de vectores y matricesPresentacion de vectores y matrices
Presentacion de vectores y matrices
letty20151998
 
Semana 4 arreglos simples (1)
Semana 4   arreglos simples (1)Semana 4   arreglos simples (1)
Semana 4 arreglos simples (1)
Julie Suazo
 
Vectores informaticos
Vectores informaticosVectores informaticos
Vectores informaticos
Sebas_Lara
 
Clase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y ArreglosClase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y Arreglos
salomonaquino
 

La actualidad más candente (17)

Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
 
Ape unidad4
Ape unidad4Ape unidad4
Ape unidad4
 
Vectores - Informática
Vectores - InformáticaVectores - Informática
Vectores - Informática
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Arreglos
ArreglosArreglos
Arreglos
 
Array
Array Array
Array
 
Tema3
Tema3Tema3
Tema3
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
Arreglos java
Arreglos javaArreglos java
Arreglos java
 
Leccion 5 Java
Leccion 5 JavaLeccion 5 Java
Leccion 5 Java
 
Arreglos
ArreglosArreglos
Arreglos
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
 
Static Alexander_Eivar
Static Alexander_EivarStatic Alexander_Eivar
Static Alexander_Eivar
 
Presentacion de vectores y matrices
Presentacion de vectores y matricesPresentacion de vectores y matrices
Presentacion de vectores y matrices
 
Semana 4 arreglos simples (1)
Semana 4   arreglos simples (1)Semana 4   arreglos simples (1)
Semana 4 arreglos simples (1)
 
Vectores informaticos
Vectores informaticosVectores informaticos
Vectores informaticos
 
Clase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y ArreglosClase 10 Estructuras De Datos Y Arreglos
Clase 10 Estructuras De Datos Y Arreglos
 

Destacado

[Pauta] [Inf 140] Control Ii
[Pauta] [Inf 140]   Control Ii[Pauta] [Inf 140]   Control Ii
[Pauta] [Inf 140] Control Ii
Daniel Barraza
 
[Inf 140] Algoritmos Y Arreglos (6 X Hoja)
[Inf 140]  Algoritmos Y Arreglos (6 X Hoja)[Inf 140]  Algoritmos Y Arreglos (6 X Hoja)
[Inf 140] Algoritmos Y Arreglos (6 X Hoja)
Daniel Barraza
 
[Pauta] [Inf 140] Certamen I
[Pauta] [Inf 140]   Certamen I[Pauta] [Inf 140]   Certamen I
[Pauta] [Inf 140] Certamen I
Daniel Barraza
 
Inf 140 Programa
Inf 140   ProgramaInf 140   Programa
Inf 140 Programa
Daniel Barraza
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeInt
Jerry
 
Ejercicios de vectores o arrays
Ejercicios de vectores o arraysEjercicios de vectores o arrays
Ejercicios de vectores o arrays
Willian Yanza Chavez
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
HEIVER CUESTA
 

Destacado (7)

[Pauta] [Inf 140] Control Ii
[Pauta] [Inf 140]   Control Ii[Pauta] [Inf 140]   Control Ii
[Pauta] [Inf 140] Control Ii
 
[Inf 140] Algoritmos Y Arreglos (6 X Hoja)
[Inf 140]  Algoritmos Y Arreglos (6 X Hoja)[Inf 140]  Algoritmos Y Arreglos (6 X Hoja)
[Inf 140] Algoritmos Y Arreglos (6 X Hoja)
 
[Pauta] [Inf 140] Certamen I
[Pauta] [Inf 140]   Certamen I[Pauta] [Inf 140]   Certamen I
[Pauta] [Inf 140] Certamen I
 
Inf 140 Programa
Inf 140   ProgramaInf 140   Programa
Inf 140 Programa
 
Arreglos en PSeInt
Arreglos en PSeIntArreglos en PSeInt
Arreglos en PSeInt
 
Ejercicios de vectores o arrays
Ejercicios de vectores o arraysEjercicios de vectores o arrays
Ejercicios de vectores o arrays
 
Arreglos vectores pseint
Arreglos vectores pseintArreglos vectores pseint
Arreglos vectores pseint
 

Similar a 6 A Arrays

array
arrayarray
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptxOBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
juan gonzalez
 
Algoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).pptAlgoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).ppt
DaveRodriguez22
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
ramaguayo
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
ramaguayo
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10
Andres Garcia Garcia
 
Arreglos
ArreglosArreglos
Arreglos
junior zamora
 
Tema6
Tema6Tema6
Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)
Carlos Anibal Riascos Hurtado
 
Presentacion de vectores
Presentacion de vectoresPresentacion de vectores
Presentacion de vectores
letty20151998
 
Taller 1 5
Taller 1 5Taller 1 5
Taller 1 5
Taller 1 5Taller 1 5
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
luis freddy
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
zousbabastre
 
Arrays
ArraysArrays
Arrays
Maria Merino
 
arrays
arraysarrays
Tipos De Datos En Java
Tipos De Datos En JavaTipos De Datos En Java
Tipos De Datos En Java
pointpower
 
Apuntes Ped
Apuntes PedApuntes Ped
Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)
jairml
 
Revista digital vectores y matrices
Revista digital vectores y matricesRevista digital vectores y matrices
Revista digital vectores y matrices
flaquita_dany
 

Similar a 6 A Arrays (20)

array
arrayarray
array
 
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptxOBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
OBJETIVO 5 VECTORES que se utilizan en la programacion.pptx
 
Algoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).pptAlgoritmos y Estructura de datos_Semana5 (3).ppt
Algoritmos y Estructura de datos_Semana5 (3).ppt
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
 
Intro Java 3
Intro Java 3Intro Java 3
Intro Java 3
 
Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10Introducción a la programación y la informática. Tema 10
Introducción a la programación y la informática. Tema 10
 
Arreglos
ArreglosArreglos
Arreglos
 
Tema6
Tema6Tema6
Tema6
 
Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)Arreglos (unimensionles y matrices (bidimensionales)
Arreglos (unimensionles y matrices (bidimensionales)
 
Presentacion de vectores
Presentacion de vectoresPresentacion de vectores
Presentacion de vectores
 
Taller 1 5
Taller 1 5Taller 1 5
Taller 1 5
 
Taller 1 5
Taller 1 5Taller 1 5
Taller 1 5
 
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
3 desarollo manejo datos capitulo 4 -01 introduccion colecciones
 
Lenguaje de Programacion - Java
Lenguaje de Programacion - JavaLenguaje de Programacion - Java
Lenguaje de Programacion - Java
 
Arrays
ArraysArrays
Arrays
 
arrays
arraysarrays
arrays
 
Tipos De Datos En Java
Tipos De Datos En JavaTipos De Datos En Java
Tipos De Datos En Java
 
Apuntes Ped
Apuntes PedApuntes Ped
Apuntes Ped
 
Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)Estructuras de datos 1(Arrays y Estructuras)
Estructuras de datos 1(Arrays y Estructuras)
 
Revista digital vectores y matrices
Revista digital vectores y matricesRevista digital vectores y matrices
Revista digital vectores y matrices
 

Último

Libro Integrado 8vo egb len-mat-ccnn-eess
Libro Integrado 8vo egb len-mat-ccnn-eessLibro Integrado 8vo egb len-mat-ccnn-eess
Libro Integrado 8vo egb len-mat-ccnn-eess
maxgamesofficial15
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
20minutos
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
acgtz913
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
josseanlo1581
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
israelsouza67
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
shirherrer
 
El Cerebro se Cambia a si Mismo-Norman Doidge.pdf
El Cerebro se Cambia a si Mismo-Norman Doidge.pdfEl Cerebro se Cambia a si Mismo-Norman Doidge.pdf
El Cerebro se Cambia a si Mismo-Norman Doidge.pdf
Robert Zuñiga Vargas
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
RAMIREZNICOLE
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
Osiris Urbano
 
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdfCUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
Inslvarez5
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
LuanaJaime1
 
Maristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdfMaristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdf
belbarcala
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
lautyzaracho4
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
lautyzaracho4
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
Jose Luis Jimenez Rodriguez
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Demetrio Ccesa Rayme
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
rosannatasaycoyactay
 

Último (20)

Libro Integrado 8vo egb len-mat-ccnn-eess
Libro Integrado 8vo egb len-mat-ccnn-eessLibro Integrado 8vo egb len-mat-ccnn-eess
Libro Integrado 8vo egb len-mat-ccnn-eess
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
 
efemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptxefemérides del mes de junio 2024 (1).pptx
efemérides del mes de junio 2024 (1).pptx
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
 
A VISITA DO SENHOR BISPO .
A VISITA DO SENHOR BISPO                .A VISITA DO SENHOR BISPO                .
A VISITA DO SENHOR BISPO .
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
 
El Cerebro se Cambia a si Mismo-Norman Doidge.pdf
El Cerebro se Cambia a si Mismo-Norman Doidge.pdfEl Cerebro se Cambia a si Mismo-Norman Doidge.pdf
El Cerebro se Cambia a si Mismo-Norman Doidge.pdf
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
 
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdfCUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
 
Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......Clase Prensencial, Actividad 2.pdf.......
Clase Prensencial, Actividad 2.pdf.......
 
Maristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdfMaristella Svampa-La sociedad excluyente.pdf
Maristella Svampa-La sociedad excluyente.pdf
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
 
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdfFEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
FEEDBACK DE LA ESTRUCTURA CURRICULAR- 2024.pdf
 
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdfGuia para Docentes como usar ChatGPT  Mineduc Ccesa007.pdf
Guia para Docentes como usar ChatGPT Mineduc Ccesa007.pdf
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
 

6 A Arrays

  • 1. Vectores y matrices - Java - 0 - © Fernando Berzal Vectores y matrices Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices Algoritmos de ordenación Ordenación por selección Ordenación por inserción Ordenación por intercambio directo (método de la burbuja) Ordenación rápida (QuickSort) Algoritmos de búsqueda Búsqueda lineal Búsqueda binaria Apéndice: Cadenas de caracteres
  • 2. Vectores y matrices - Java - 1 - © Fernando Berzal Arrays Un array es una estructura de datos que contiene una colección de datos del mismo tipo Ejemplos Temperaturas mínimas de los últimos treinta días Valor de las acciones de una empresa durante la última semana … Propiedades de los arrays - Los arrays se utilizan como contenedores para almacenar datos relacionados (en vez de declarar variables por separado para cada uno de los elementos del array). - Todos los datos incluidos en el array son del mismo tipo. Se pueden crear arrays de enteros de tipo int o de reales de tipo float, pero en un mismo array no se pueden mezclar datos de tipo int y datos de tipo float. - El tamaño del array se establece cuando se crea el array (con el operador new, igual que cualquier otro objeto). - A los elementos del array se accederá a través de la posición que ocupan dentro del conjunto de elementos del array. Terminología Los arrays unidimensionales se conocen con el nombre de vectores. Los arrays bidimensionales se conocen con el nombre de matrices.
  • 3. Vectores y matrices - Java - 2 - © Fernando Berzal Declaración Para declarar un array, se utilizan corchetes para indicar que se trata de un array y no de una simple variable del tipo especificado. Vector (array unidimensional): tipo identificador[]; o bien tipo[] identificador; donde tipo es el tipo de dato de los elementos del vector identificador es el identificador de la variable. Matriz (array bidimensional): tipo identificador[][]; o bien tipo[][] identificador; NOTA: No es una buena idea que el identificador del array termine en un dígito, p.ej. vector3
  • 4. Vectores y matrices - Java - 3 - © Fernando Berzal Creación Los arrays se crean con el operador new. Vector (array unidimensional): vector = new tipo[elementos]; Entre corchetes se indica el tamaño del vector. tipo debe coincidir con el tipo con el que se haya declarado el vector. vector debe ser una variable declarada como tipo[] Ejemplos float[] notas = new float[ALUMNOS]; int[] temperaturas = new int[7]; Matriz (array bidimensional): matriz = new tipo[filas][columnas]; Ejemplo int[][] temperaturas = new int[12][31];
  • 5. Vectores y matrices - Java - 4 - © Fernando Berzal Uso Para acceder a los elementos de un array, utilizamos índices (para indicar la posición del elemento dentro del array) Vector (array unidimensional): vector[índice] - En Java, el índice de la primera componente de un vector es siempre 0. - El tamaño del array puede obtenerse utilizando la propiedad vector.length - Por tanto, el índice de la última componente es vector.length-1 Ejemplo float[] notas = new float[3];
  • 6. Vectores y matrices - Java - 5 - © Fernando Berzal Matriz (array bidimensional): matriz[índice1][índice2] Una matriz, en realidad, es un vector de vectores: - En Java, el índice de la primera componente de un vector es siempre 0, por lo que matriz[0][0] será el primer elemento de la matriz. - El tamaño del array puede obtenerse utilizando la propiedad array.length: § matriz.length nos da el número de filas § matriz[0].length nos da el número de columnas - Por tanto, el último elemento de la matriz es matriz[matriz.length-1][matriz[0].length-1] Inicialización en la declaración Podemos asignarle un valor inicial a los elementos de un array en la propia declaración int vector[] = {1, 2, 3, 5, 7}; int matriz[][] = { {1,2,3}, {4,5,6} }; El compilador deduce automáticamente las dimensiones del array.
  • 7. Vectores y matrices - Java - 6 - © Fernando Berzal Manipulación de vectores y matrices Las operaciones se realizan componente a componente Ejemplo: Suma de los elementos de un vector static float media (float datos[]) { int i; int n = datos.length; float suma = 0; for (i=0; i<n; i++) suma = suma + datos[i]; return suma/n; } No es necesario utilizar todos los elementos de un vector, por lo que, al trabajar con ellos, se puede utilizar una variable entera adicional que nos indique el número de datos que realmente estamos utilizando: El tamaño del vector nos dice cuánta memoria se ha reservado para almacenar datos del mismo tipo, no cuántos datos del mismo tipo tenemos realmente en el vector. Ejemplo: Suma de los n primeros elementos de un vector static float media (float datos[], int n) { int i; float suma = 0; for (i=0; i<n; i++) suma = suma + datos[i]; return suma/n; }
  • 8. Vectores y matrices - Java - 7 - © Fernando Berzal Ejemplo public class Vectores { public static void main (String[] args) { int pares[] = { 2, 4, 6, 8, 10 }; int impares[] = { 1, 3, 5, 7, 9 }; mostrarVector(pares); System.out.println("MEDIA="+media(pares)); mostrarVector(impares); System.out.println("MEDIA="+media(impares)); } static void mostrarVector (int datos[]) { int i; for (i=0; i<datos.length; i++) System.out.println(datos[i]); } static float media (int datos[]) { int i; int n = datos.length; int suma = 0; for (i=0; i<n; i++) suma = suma + datos[i]; return suma/n; } }
  • 9. Vectores y matrices - Java - 8 - © Fernando Berzal static int[] leerVector (int datos) { int i; int[] vector = new int[datos]; for (i=0; i<datos; i++) vector[i] = leerValor(); return vector; } IMPORTANTE: Cuando se pasa un array como parámetro, se copia una referencia al array y no el conjunto de valores en sí. Por tanto, tenemos que tener cuidado con los efectos colaterales que se producen si, dentro de un módulo, modificamos un vector que recibimos como parámetro. Ejemplo El siguiente método lee los elementos de un vector ya creado static void leerVector (int[] datos) { int i; for (i=0; i<datos.length; i++) datos[i] = leerValor(); }
  • 10. Vectores y matrices - Java - 9 - © Fernando Berzal Copia de arrays La siguiente asignación sólo copia las referencias, no crea un nuevo array: int[] datos = pares; Para copiar los elementos de un array, hemos de crear un nuevo array y copiar los elementos uno a uno int[] datos = new int[pares.length]; for (i=0; i<pares.length; i++) datos[i] = pares[i] También podemos utilizar una función predefinida en la biblioteca de clases estándar de Java: System.arraycopy(from,fromIndex,to,toIndex,n); int[] datos = new int[pares.length]; System.arraycopy(pares,0,datos,0,pares.length); EXTRA: La biblioteca de clases de Java incluye una clase auxiliar llamada java.util.Arrays que incluye como métodos algunas de las tareas que se realizan más a menudo con vectores: - Arrays.sort(v) ordena los elementos del vector. - Arrays.equals(v1,v2) comprueba si dos vectores son iguales. - Arrays.fill(v,val) rellena el vector v con el valor val. - Arrays.toString(v) devuelve una cadena que representa el contenido del vector. - Arrays.binarySearch(v, k) busca el valor k dentro del vector v (que previamente ha de estar ordenado).
  • 11. Vectores y matrices - Java - 10 - © Fernando Berzal Ejemplos Un programa que muestra los parámetros que le indicamos en la línea de comandos: public class Eco { public static void main(String args[]) { int i; for (i=0; i<args.length; i++) System.out.println(args[i]); } } Un método que muestra el contenido de una matriz: public static void mostrarMatriz (double matriz[][]) { int i,j; int filas = matriz.length; int columnas = matriz[0].length; // Recorrido de las filas de la matriz for (i=0; i<filas; i++) { // Recorrido de las celdas de una fila for (j=0; j<columnas; j++) { System.out.println ( “matriz[”+i+“][”+j+“]=” + matriz[i][j] ); } } }