我想在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