数组有两种方法

时间:2018-02-08 15:11:27

标签: java methods

TEntity

用户需要选择要使用的方法,然后编写多少个数字,然后编写它们,程序按照方法中描述的方式对数字进行排序。第一种方法一切正常,但第二种显示错误:

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0

BaseEntity<TKey, TUId>

正如您所看到的那样是Shell排序方法 你能帮忙吗?

2 个答案:

答案 0 :(得分:1)

t=(int) (Math.log(A.length)/Math.log(2)-1);行中的问题

如果数组的长度小于6,那么t将为零。所以你将创建零长度的数组。这是一个错误。可能你需要一些检查,可能是另一个公式。无论如何,你必须检查代码。

答案 1 :(得分:0)

如上所述,您的问题是获取h数组长度的公式。

一个简单的解决方法就是改变这一行:

t = (int) (Math.log(A.length) / Math.log(2) - 1);

为:

t = A.length;

如你所愿,新数组的长度与初始数组的长度相同。