我必须融合之前排序的2个数组,我必须为学校做这件事,但我可以有人可以帮助我,因为现在我要求数组的维度,我实例化了数组,然后我做了一个for来填充它们,我添加了数组的排序,我将把我的代码粘贴到这里。(评论是意大利语)我知道对一些人来说这可能是一个愚蠢的问题,但是,我在编程的第一年,我想提高自己。我提前感谢帮助我的人
package pFusioneVettoriCacciola;
import java.util.*;
public class Fusione {
public static void main(String[] args) {
Scanner tastiera = new Scanner (System.in);
//variabili
int m=0;
int n=0;
int i=0;
int j=0;
int f=0;
int l=0;
int k = 0;
int scambio = 0;
boolean controllo = true;
int [] vett1;
int [] vett2;
int [] fusione;
//grandezze vettori
do {
System.out.println("Inserire grandezza del primo vettore");
m = tastiera.nextInt();
if (m<=0)
{
System.out.println("Grandezza non valida reinserire ");
}
}while(m<=0);
do {
System.out.println("Inserire grandezza del secondo vettore");
n = tastiera.nextInt();
if (n<=0)
{
System.out.println("Grandezza non valida reinserire ");
}
}while(n<=0);
//istanzazioni vettori
vett1= new int [m];
vett2= new int [n];
fusione= new int [m+n];
//popolamento vettore uno
for ( i = 0; i < vett1.length; i++)
{
System.out.println("Inserire valore della cella " + i + " (Primo Vettore)" );
vett1[i]= tastiera.nextInt();
}
//popolamento vettore due
for ( i = 0; i < vett2.length; i++)
{
System.out.println("Inserire valore della cella " + i + " (Secondo Vettore)");
vett2[i]= tastiera.nextInt();
}
//stampa primo vettore non ordinato
System.out.println("Stampa primo vettore (non ordinato):");
for ( i = 0; i < vett1.length; i++)
{
System.out.println(vett1[i]);
}
//stampa secondo vettore non ordinato
System.out.println("Stampa secondo vettore (non ordianto):");
for ( i = 0; i < vett2.length; i++)
{
System.out.println(vett2[i]);
}
//ordinamento primo vettore
for (i = 0; i < (vett1.length-1) ; i++)
{
for ( j = 0; j < (vett1.length-1)-i; j++)
{
if (vett1[j] > vett1[j+1])
{
scambio = vett1[j];
vett1[j] = vett1[j+1];
vett1[j+1] =scambio;
}
}
}
//ordinamento secondo vettore
for (i = 0; i < (vett2.length-1) ; i++)
{
for ( j = 0; j < (vett2.length-1)-i; j++)
{
if (vett2[j] > vett2[j+1])
{
scambio = vett2[j];
vett2[j] = vett2[j+1];
vett2[j+1] =scambio;
}
}
}
//stampa primo vettore ordinato
System.out.println("Stampa primo vettore (ordinato):");
for ( i = 0; i < vett1.length; i++)
{
System.out.println(vett1[i]);
}
//stampa secondo vettore ordinato
System.out.println("Stampa secondo vettore (ordianto):");
for ( i = 0; i < vett2.length; i++)
{
System.out.println(vett2[i]);
}
//fusione
//Print Vettore fuso
System.out.println("Ecco il vettore fuso:");
for ( i = 0; i < fusione.length; i++)
{
System.out.println(fusione[i]);
}
}
}
我希望这个链接能解决你的问题https://www.geeksforgeeks.org/merge-two-sorted-arrays/
我知道类似的问题也有人问过,我也研究过很多网站。我已经尝试使用一些答案,但我的代码仍然不能工作。 我正在经历以前的作业,以帮助建立我的Java知识。请原谅我的代码中的任何错误,我还在学习Java。 假设两个输入数组中的元素都按非递减顺序排序(例如[0,1,2,2]和[1,2,3,3,4,5])。返回的“合并”数组必须保留此属性(例如[0,1,1,2,2,2,3,3,4,5])。 输入和输出都允许重
问题内容: 这是在采访中问我的,这是我提供的解决方案: 有没有更有效的方法可以做到这一点? 编辑:更正的长度方法。 问题答案: 稍有改进,但是在主循环之后,当到达另一个输入数组的末尾时,可以用来复制其中一个输入数组的结尾。但是,那不会改变你解决方案的性能特征。
我想写一个时间O(n*lgk)的算法,将k个排序数组合并成一个排序数组,其中n是所有输入数组的元素总数。 你能告诉我怎么做吗? 编辑:我编写了以下算法: 你能告诉我这是否正确吗?
问题内容: 给定两个排序数组,如下所示: 我希望输出为: 要么: 我知道我可以执行以下操作: 我只是想知道是否有一种更快的方法,因为我要处理的数组具有数百万个元素。 任何想法都欢迎。谢谢 问题答案: 由于您使用numpy,因此我怀疑bisec根本不会对您有所帮助。因此,我建议您做两件事: 千万 不能 使用,使用方法,而不是这种种取代阵列,避免了复制。 必须使用没有到位的。因此,不要手动使用逻辑。I
我的清单和我认为是正确的方法 但我得到的 为什么?
给定两个未排序的int数组,是否可以使用Java 8或使用任何方法将它们合并到第三个数组中? 有没有可能做这样的事情: 或者是否可以使用任何方法?