java归并排序算法报错

来源:互联网 发布:中小学生出作业软件 编辑:程序博客网 时间:2024/06/06 01:39
import java.util.Arrays;public class MergeSort {    public static int[] sort(int[] nums,int low,int high){        int mid =(low+high)/2;        if(low<high){            sort(nums,low,mid);            sort(nums,mid+1,high);            merge(nums,low,mid,high);        }        return nums;    }    public static void merge(int[] nums,int low,int mid,int high){        int [] temp = new int[high - low +1];        int i = low;        int j = mid+1;        int k = 0;        while(i<=mid&&j<=high){            if(nums[i]<nums[j]){                temp[k++]=nums[i++];            }else{                temp[k++]=nums[j++];            }        }        while(i<mid){            temp[k++]=nums[i++];        }        while(j<=high){            temp[k++]=nums[j++];        }        for(int k2 = 0;k2<temp.length;k2++){            temp[k2+low]=temp[k2];        }    }    public static void main(String[] args){        int nums[]={5,4,3,2,1,8,9,0,6};        MergeSort.sort(nums, 0, nums.length-1);        System.out.println(Arrays.toString(nums));    }}

报错如下
这里写图片描述

数组越界异常,通常是数组的角标为负数或者超出了数组个数。没找到原因。

0 0
原创粉丝点击