はい、これは宿題です。簡単に言えば、私の教授は言葉遣いが得意ではないので、
そのようなテキストファイルが与えられます
11 -5 -4 -3 -2 -1 6 7 8 9 10 11
8 -33 -22 -11 44 55 66 77 88
これはSortedArrays.txtとして与えられます
最初の行は配列 1 になり、2 番目の行は配列 2 になります。各行の最初の int は配列のサイズになります。
int a[] = new int[11]
int b[] = new int[8]
私の最初の問題は、これをプログラムに読み込むことです。引数として run を想定していますが、私の問題は、各行を解読して配列をロードすることです。
a要素とb要素を比較してcにロードするための良い方法があると思いますが、誰か見てもらえますか?
このサイトにもう一度感謝します。私は検索してこのプログラムを見てきましたが、要素はテキスト ファイルから既に与えられているか、与えられていません。
// ************************************************************
// MergeArray.java
//
// Written by: Brandon Pham
//
//
//
//
// Homework 6
// ************************************************************
import java.io.*;
import java.util.*;
public class MergeArray {
String arrayfile = "SortedArrays.txt";
MergeArray(String arrayfile){
try {
Scanner arrayload = new Scanner(File(arrayfile));
}
catch (FileNotFoundException e) {
System.out.printf("File %s not found, exiting!",
arrayfile);
System.exit(0);
}
int[] a = new int[arrayload.nextint()];
int[] b = new int[arrayload.nextLine()];
int[] c = new int[a.length+b.length];
}
public static void merge(int[]a, int[]b, int[]c) {
int i=0,j=0,k=0;
int alength = a.length;
int blength = b.length;
while (k<c.length){
if (a[i] < b[j]){
c[k] = a[i];
k++;
i++;
}
if (a[i] == b[j]){
c[k]=a[i];
c[k++]=b[j];
i++;
j++;
if (i+1>a.length){
c[k]=b[j];
k++;
j++;
}
if (j+1>b.length){
c[k]=a[i];
k++;
i++;
}
else{
c[k] = b[j];
k++;
j++;
}
}
}