【发布时间】:2010-12-08 23:00:40
【问题描述】:
我正在尝试用 Java 编写一个简单的合并排序程序,我在 Eclipse 中看到很多红色。我还是个初学者,不太明白哪里出了问题。谢谢。
-凯尔
public class merge{
public static int[] mergeSub(int[] array, int left, int right){
if(left<right)
{
int mid = (left+right)/2;
int[] a = mergeSub(array, left, mid);
int [] b = mergeSub(array, mid+1, right);
return merge(a, b);
}
int[] arr=new int[1];
arr[0]=arr[left];
return arr;
}
static int[] merge(int[] left, int[] right){
int index =0; int indexLeft =0; int indexRight=0;
int[] result = new int[left.length+right.length];
while(indexLeft<left.length && indexRight<right.length){
if(left[indexLeft] <= right[indexRight])
{
result[index]=left[indexLeft];
index++;
indexLeft++;
}
else{
result[index]=right[indexRight];
index++;
indexRight++;
}
}
if (indexLeft<left.length){
while(indexLeft<left.length){
result[index]=left[indexLeft];
indexLeft++; index++;
}
}
if (indexRight<right.length){
while(indexRight<left[indexRight]){
result[index]=right[indexRight];
indexRight++; right[indexRight]++;
}
}
return result;
}
public static void main(String args[]){
int[] array = {2, 4, 5, 7, 5, 6, 3, 5, 7, 8};
System.out.println(mergeSub(array, 0, 9));
}}
【问题讨论】:
-
如果你能描述一两个更常见的错误会更容易。
-
我不确定,eclipse 好像可以编译但是还是有问题
-
花时间正确缩进你的代码。这将使其更具可读性和可理解性,并暴露出广泛的错误。 Eclipse 可以帮助您使用可以配置的标准自动格式化,直到您找到您的“风格”。我只是拒绝检查格式不一致的代码。这包括我辅导的时候。
-
将您的问题更新为最新版本的代码。如果您仍然有麻烦,我可以发布一个工作版本。还是希望你自己解决。
标签: java merge sorting mergesort