我想在Java中编写一个简单的合并排序程序,我在Eclipse中看到很多红色。我还是个初学者,不太明白什么是错的。谢谢。Java递归和合并排序
-Kyle
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));
}}
如果您能描述一个或两个更常见的错误,那将会更容易。 – FrustratedWithFormsDesigner 2009-10-22 03:32:41
林不知道,日食似乎编译它,但仍有麻烦 – Benzle 2009-10-22 04:01:22
花时间正确缩进你的代码。这将使其更具可读性和可理解性,并且会暴露各种各样的错误。 Eclipse可以帮助您使用可配置的标准自动格式化,直到找到“样式”为止。我只是拒绝去检查那些格式不一致的代码;这包括当我导师。 – 2009-10-22 04:14:19