[英]Sorting a negative Arrays
所以我想對包含負數的數組進行排序。 我的方法有這個。 當我用負輸入運行它時,java.lang.negativeArray異常消失了。 這是代碼:
protected int size;
protected int offset;
public CountSort2(int nilaiMax,int nilaiMin)
{
this.size = nilaiMax-nilaiMin+1;
this.offset=nilaiMin;
}
public void sort(int[] arrInput)
{
int[] arrFrek = new int[size];
for(int i=0;i<arrFrek.length;i++)
{
arrFrek[i]=0;
}
for(int i=0;i<arrInput.length;i++)
{
arrFrek[arrInput[i]-offset]+=1;
}
for(int i =1; i<arrFrek.length;i++)
{
arrFrek[i] = arrFrek[i]+arrFrek[i-1];
}
int[] newArrInput = new int[arrInput.length];
for(int i=0;i<arrInput.length;i++)
{
newArrInput[i]=arrInput[i];
}
for(int i=0;i<newArrInput.length;i++)
{
arrInput[arrFrek[newArrInput[i]-offset]-1]=newArrInput[i];
arrFrek[newArrInput[i]-offset]-=1;
}
}
我錯過了什么 ?
是的,您的代碼中有一個位置可能會導致此異常。
int[] arrFrek = new int[size];
來自javadocs
NegativeArraySizeException
Thrown if an application tries to create an array with negative size.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.