Sorting 合并排序数组,然后添加
我终于让我的程序对数组进行排序,但我无法让它添加它。我收到一个错误,内容如下:Sorting 合并排序数组,然后添加,sorting,merge,Sorting,Merge,我终于让我的程序对数组进行排序,但我无法让它添加它。我收到一个错误,内容如下: MergeSorter.java:21:错误:无法从静态上下文引用非静态方法sumOfArray(int[],int) 代码: import java.util.Arrays; public class MergeSorter{ public static void sort(int[] a) { if (a.length <= 1) { return; } int[
MergeSorter.java:21:错误:无法从静态上下文引用非静态方法sumOfArray(int[],int)
代码:
import java.util.Arrays;
public class MergeSorter{
public static void sort(int[] a)
{
if (a.length <= 1) { return; }
int[] first = new int[a.length / 2];
int[] second = new int[a.length - first.length];
for (int i = 0; i < first.length; i++)
{
first[i] = a[i];
}
for (int i = 0; i < second.length; i++)
{
second[i] = a[first.length + i];
}
sort(first);
sort(second);
merge(first, second, a);
int sum =sumOfArray(a, a.length-1);
}
private static void merge(int[] first, int[] second, int[] a){
int iFirst = 0;
int iSecond = 0;
int j = 0;
while (iFirst < first.length && iSecond < second.length){
if (first[iFirst] < second[iSecond]) {
a[j] = first[iFirst];
iFirst++;
}
else{
a[j] = second[iSecond];
iSecond++;
}
j++;
}
while (iFirst < first.length){
a[j] = first[iFirst];
iFirst++; j++;
}
while (iSecond < second.length){
a[j] = second[iSecond];
iSecond++; j++;
}
}
public int sumOfArray(int[] a, int n){
if (n == 0)
return a[n];
else
return a[n] + sumOfArray(a, n-1);
}
}
导入java.util.array;
公共类合并分类器{
公共静态无效排序(int[]a)
{
如果(a.length使其静止?
比如:
见此帖:
简言之,您需要使该方法成为静态的,或者在类的实例上调用它。一个简单的解决方法是更改
public int sumOfArray(int[] a, int n)
到
否则,您必须创建一个MergeSorter对象并调用sumOfArray方法:
int sum =new MergeSorter().sumOfArray(a, a.length-1)
谢谢你们!我觉得好笨!我整晚都在盯着这个!
public static int sumOfArray(int[] a, int n)
int sum =new MergeSorter().sumOfArray(a, a.length-1)