ช่วยตรวจสอบให้ทีครับว่าทำไมมันถึงรันไม่ได้ แล้วแก้ให้กระผมด้วยนะครับ
ขอบคุณทุกความคิดเห็นครับ
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้public class Mergesort {
public static int [] sort(int[] data, int[] data2) {
int[] sortedData = new int[data1.length + data2.length];
int i = 0;
int i1 = 0;
int i2 = 0;
while (i1 < data1.length && i2 < data2.length) {
if (data1[i1] <= data[i2]) {
sortedData = data[i1];
i1++;
}
else {
sortedData = data2[i2];
i2++;
}
i++;
MergeSort.display(sortedData, 0, i - 1, data1, i1,
data1,length - 1,data2, i2, data2,length - 1);
}
while (i1 < data1.length) {
sortedData = data1[i1];
i1++;
i++;
MergeSort.display(sortedData, 0, i, data1, i1,
data1.length - 1, data2, i2, data2.length - 1);
}
while (i2 < data2.length) {
sortedData = data2[i2];
i2++;
i++;
MergeSort.display(sortedData, 0, i - 1, data1, i1,
data1.length - 1, data, i2, data2.length - 1);
}
return sortedData;
}
public static viod display(int[] x1, int start1, int end1, int[] x2,
int start2, int end2, int[] x3, int end3) {
System.out.println(" Sorting Data:\t" + MergeSort.arrayToString(
x1, start, end1) + " " + MergeSort.arrayToString(x2, Start2,
end2) + " " + MergeSort.arrayToString(x3, end3));
}
public static String arrayToString(int[] x, int start, int end) {
String output = "";
for (int i = start; i <= end; i++) {
output += x + " ";
}
return output;
}
public static viod main(String[] args) {
int[] data1 = {1, 3, 5,7 ,9};
int[] data2 = {2, 4, 6, 8};
System.out.print("Input Data:\t");
for (int i = 0; i < data1.length; i++) {
System.out.print(data1 + " ");
}
System.out.println("");
System.out.print("Input Data2:\t");
for (int i = 0; i < data2.length; i++) {
System.out.print(data2 + " ");
}
System.out.print("");
int[] sortedData = MergeSort.sort(data1, data2);
System.out.print("Sort Data:\t");
for (int i = 0; i < sortedData.length; i++) {
System.out.print(sortedData + " ");
}
}
}
โปรแกรม
ขอบคุณทุกความคิดเห็นครับ
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้