package com.company;
import java.util.Arrays;
import java.util.Scanner;
public class CountSort {
public static void main(String[]args){
System.out.println("请输出数组长度");
Scanner sc=new Scanner(System.in);
int arraylenth=sc.nextInt();
System.out.println(arraylenth);
int a[]=new int[arraylenth];
Scanner show= new Scanner(System.in);
for(int i = 0; i < a.length; i++){
a[i] = show.nextInt();
}
System.out.println("数组a为:" + Arrays.toString(a));
int[]result=sort(a);
System.out.println(Arrays.toString(result));
}
static int[]sort(int[]a){
int[]result=new int[a.length];
int[]count =new int[(a.length/2)+1];
for (int i=0;i<a.length;i++) count[a[i]]++;
System.out.println(Arrays.toString(count));
for (int i=0,j=0;i< count.length;i++){
while (count[i]-->0)result[j++]=i;
}
return result;
}
static void findMax(int[]a,int n){
for (int j=0;j<n;j++){
if (a[j]>a[j+1])swap(a,j,j+1);
}
}
static void swap(int[]a,int i,int j){
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
static void print(int[]a){
for (int i=0;i< a.length;i++){
System.out.print(a[i]+"");
}
}
}
总是会提示
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at com.company.CountSort.sort(CountSort.java:23)
at com.company.CountSort.main(CountSort.java:17)
希望能有人帮我解决一下这个问题,谢谢!