【发布时间】:2021-10-10 14:21:41
【问题描述】:
我正在练习合并排序。这是我遇到的问题,它显示数组索引越界,我检查了 for 循环并用
public class MergeSortProblem {
public static void merge(int[] arr, int[] res, int low, int mid, int high) {
int i = low, k= low, j=mid+1;
while(i<=mid && j<=high) {
if(arr[i] <= arr[j]) {
res[k++] = arr[i++];
}
else {
res[k++] = arr[j++];
}
}
while(i<=mid) {
res[k++] = arr[i++];
}
while(j<=high) {
res[k++] = arr[j++];
}
for(i =low; i<=high; i++ ) {
arr[i] = res[k];
}
}
public static void divideArray(int[] arr, int[] res, int low, int high) {
while(low == high) {
return;
}
int mid = (low + high)/2 ;
divideArray(arr, res, low,mid);
divideArray(arr,res, mid+1, high);
merge(arr,res,low,mid,high);
}
public static void main(String[] args) {
int[] array = {6,10,5,7,6,8,3,80};
int size = array.length;
int start = 0;
int[] result = {};
divideArray(array,result,start,size);
}
}
为什么我的数组索引越界异常?
【问题讨论】: