Java - ARREGLOS DE UNA DIMENSIÓN - AYUDA URGENTE!!!

 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

ARREGLOS DE UNA DIMENSIÓN - AYUDA URGENTE!!!

Publicado por Daniella (4 intervenciones) el 01/06/2019 02:44:23
Hola!! , necesito que me ayuden con este problema de Java -

Se tienen dos arreglos: TEATROS y MUSEOS. El primero almacena los nombres de todos los teatros de la ciudad de New York. Está ordenado alfabéticamente de manera ascendente y posee N elementos. El segundo arreglo guarda los nombres de todos los museos de la ciudad. Está ordenado alfabéticamente de manera descendente y posee K elementos. Escriba un algoritmo que mezcle estos arreglos formando un tercero, ENTRETENIMIENTOS, de longitud (N + K) que quede ordenado alfabéticamente de manera ascendente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.util.Arrays;
 
public class Entretenimiento {
 
	public static void main(String[] args) {
		String[] Teatros={ "Ford Center", "Eugene O'Neill", "Ethel Barrymore", "Cort", "Cricle in the Square", "Brooks Atkinson", "Broadway", "Broadhurts","Booth", "Astor Place","Astor's Playhouse", "American Jewish","American Airlines Theater","Ambassador Theater"};
		String[] Museos={ "Abigail Adams Smith", "American Museum of Natural History", "Brooklyn Museum", "Children's Museum of Manhattan", "Cooper-Hewitt National Design Museum", "El Museo del Barrio", "Ellis Island Museum of Immigration", "Guggenheim Museum", "Historic Richmond Town" , "Intrepid Sea Air Space Museum", "Metropolitan Museum of Art", "Museo de Cera Madam Tussauds", "Museum Mile Festival", "Museum of Modern Art", "Museum of Television and Radio", "Museum of the City of New York", "National Museum of the American Indian", "New York Hall of Science", "New York Transit Museum", "Nicholas Roerich Museum", "Queens County Farm Museum", "Salmagundi Art Club", "South Street Seaport Museum", "Statue of Liberty", "Studio Museum in Harlem", "The Cloisters", "The Frick Collection and Frick Art Reference Library", "The Morgan Library & Museum", "Whitney Museum of American Art"};
 
		Arrays.sort(Teatros);
		Arrays.sort(Museos);
 
		System.out.println(" Teatros ");
		System.out.println ("  ");
		for (int i=0; i < Teatros.length; i++)
		{
 
			System.out.println( Teatros [i]);
		}
		System.out.println (" ");
		System.out.println (" Museos ");
		System.out.println (" ");
		for (int n= Museos.length-1; n>=0 ; n--)
		{
			System.out.println( Museos [n]);
 
		}
 
		String[] resultado=ConcatenarArray(Teatros,Museos);
 
		System.out.println(" ");
		System.out.println(" Entretenimiento ");
		System.out.println("  ");
 
		Arrays.sort(resultado);
		for (int a=0; a<resultado.length; a++)
		{
			System.out.println(resultado[a]);
		}
	}
 
	public static String[] ConcatenarArray(String[] o1, String[] o2)
	{
		String[] Ent = new String[o1.length + o2.length];
 
	    System.arraycopy(o1, 0, Ent, 0, o1.length);
		System.arraycopy(o2, 0, Ent, o1.length, o2.length);
 
 
		return Ent;
	}
 
}


El resultado lo había hecho uniendo los arreglos Teatros y Museos para así crear el tercer arreglo , pero mi profesora lo quiere como una comparación entre los dos arreglos y así crear el tercero. Por favor , necesito su colaboración , no sé cómo modificarlo soy Novata en esto .
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 203
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

ARREGLOS DE UNA DIMENSIÓN - AYUDA URGENTE!!!

Publicado por Jose Andres (27 intervenciones) el 01/06/2019 08:16:29
En la linea 34 ordenas el arreglo resultante, si quieres [a,b,c,1,2,3] no lo ordenes, si los quieres intercalados, entonces deberian de ser del mismo tamaño

la union lo hace en el metodo "ConcatenarArray" de la linea 41

1
2
3
4
5
6
7
8
9
10
11
12
13
public static String[] ConcatenarArray(String[] o1, String[] o2)
{
    String[] Ent = new String[o1.length + o2.length];//crea el array del tamaño deseado
 
    System.arraycopy(o1, 0, Ent, 0, o1.length);//copia el primero array
    System.arraycopy(o2, 0, Ent, o1.length, o2.length);//justo donde termina el antieror mete el nuevo
            //El primer parametro del arraycopy es el array original, el segundo parametro es la posicion de inicio
            //en el cual va a comenzar a copiar del array original, el tercero es a donde se copiara, el cuarto es la
            //posicion inicial para introducir el array a copiar en el destino y el ultimo parametro es la cantidad de
            //datos que copiara del array fuente
 
    return Ent;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

ARREGLOS DE UNA DIMENSIÓN - AYUDA URGENTE!!!

Publicado por Daniella (4 intervenciones) el 01/06/2019 08:22:36
Muchas Gracias por su respuesta , la verdad no entiendo por qué mi profesora no quería ese método que utilicé para resolver el problema .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

ARREGLOS DE UNA DIMENSIÓN - AYUDA URGENTE!!!

Publicado por Rodrigo (623 intervenciones) el 01/06/2019 09:32:17
El codigo no calza con el enunciado.
Te dicen que unos de los arreglos esta ordenado ascendentemente y el otro esta ordenado descendentemente.
Si ya estan asi, porque asi te dicen que estan, no tiene sentido comenzar con arreglos desordenados y ordernarlos.

Una vez que ya estan ordenados como te lo han propuesto, para generar el arreglo final ordenado, basta ir tomando los elementos uno por uno desde cada uno de los arreglos, tomando siempre el menor de los 2 conjuntos.

Para explicarlo mejor, si los arreglos fueran numericos y estos fueran .
[1, 3, 5, 7, 9] y
[ 8, 6, 4, 2 ]

(ya ordenados)

Se toman los 2 valores menores de cada conjunto (al inicio del primero, al final del segundo) y se toma el menor de ellos y este
se lleva al arreglo final, y asi sucesivamente

1
2
3
4
5
6
7
8
9
10
11
Arreglo 1,       Arreglo 2,      Arreglo 3
[1, 3, 5, 7, 9], [ 8, 6, 4, 2 ], [ ]
[3, 5, 7, 9],    [ 8, 6, 4, 2 ], [ 1 ]
[3, 5, 7, 9],    [ 8, 6, 4 ],    [ 1, 2 ]
[5, 7, 9],       [ 8, 6, 4 ],    [ 1, 2, 3 ]
[5, 7, 9],       [ 8, 6 ],       [ 1, 2, 3, 4 ]
[7, 9],          [ 8, 6 ],       [ 1, 2, 3, 4, 5 ]
[7, 9],          [ 8, 6 ],       [ 1, 2, 3, 4, 5, 6 ]
[9],             [ 8 ],          [ 1, 2, 3, 4, 5, 6, 7 ]
[9],             [  ],           [ 1, 2, 3, 4, 5, 6, 7, 8 ]
[],              [  ],           [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

Problemas posibles: Uno de los arreglos se te acaba antes que el otro, asi que es posible que no haya nada con quien comparar.
Para resolverlo, cuando se acaba uno de los arreglos, hay que copiar del otro arreglo incondicionalmente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar