Java 合并排序问题:“…”;。。。VariableDeclaratorId“;填写FormalParameterList的步骤

Java 合并排序问题:“…”;。。。VariableDeclaratorId“;填写FormalParameterList的步骤,java,arraylist,mergesort,Java,Arraylist,Mergesort,我正在使用可比较的ArrayList进行mergeSort。我发现了这些错误: -语法错误,请插入“…VariableDeclaratorId”以完成 形式参数表 -方法断点:排序[entry]-合并排序() 这是我的代码,我该怎么做 import java.util.ArrayList; import java.util.List; public class Sorts { public ArrayList<Comparable> yay = new ArrayList<C

我正在使用可比较的ArrayList进行mergeSort。我发现了这些错误: -语法错误,请插入“…VariableDeclaratorId”以完成 形式参数表 -方法断点:排序[entry]-合并排序() 这是我的代码,我该怎么做

import java.util.ArrayList;
import java.util.List;
public class Sorts 
{
public ArrayList<Comparable> yay = new ArrayList<Comparable>();
public ArrayList<Comparable> helper = new ArrayList<Comparable>();

public Sorts() 
{

}

private void mergesort(List<Comparable> yay, int low, int high)
{
 if (low < high) 
{
  int middle = low + (high - low) / 2;
  mergesort(yay, low, middle);
  mergesort( yay, middle + 1, high);
  merge(low, middle, high);
}
}

private void merge(int low, int middle, int high) 
{
for (int i = low; i <= high; i++) 
{
  helper.set(i,yay.get(i)) ;
}

int i = low;
int j = middle + 1;
int k = low;
while (i <= middle && j <= high) 
{
  if (helper.get(i).compareTo( helper.get(j))<=0) 
  {
    yay.set(k, helper.get(i));
    i++;
  } 
  else 
  {
    yay.set(k, helper.get(j));
    j++;
  }
  k++;
}

while (i <= middle) 
{
  yay.set(k, helper.get(i));
  k++;
  i++;
}
}

public static void main(String[] args) 
{
ArrayList<Comparable> bla = new ArrayList<Comparable>();
bla.add(2);
bla.add(4);
bla.add(3);
bla.add(1);
  Sorts test = new Sorts();
  System.out.println(bla);
  test.mergesort(bla, 0, 0);
  System.out.println("Sorted:");
  for(int i=0; i< bla.size();i++)
  {
      System.out.println(bla.get(i));
  }
  }
} 
import java.util.ArrayList;
导入java.util.List;
公共类分类
{
public ArrayList yay=新的ArrayList();
public ArrayList helper=new ArrayList();
公共排序()
{
}
私有void合并排序(列表Y、整型低、整型高)
{
如果(低<高)
{
int middle=低+(高-低)/2;
合并排序(yay、low、middle);
合并排序(耶,中+1,高);
合并(低、中、高);
}
}
私有无效合并(整数低、整数中、整数高)
{

对于(int i=low;i
private void mergesort(List)
,您指定了参数类型,但没有为其指定名称,如:

private void mergesort(List<Comparable> list)
private void合并排序(列表)

BTW,low和high未初始化。根据递归调用,它们似乎应该是参数。因此,我将把yay作为我的“名称”?如何初始化它们或使它们成为参数?如图所示:private void mergesort(List yay)可以这样做,但这将隐藏类级定义。如果这是要排序的列表,则直接访问它,并将mergesort声明更改为:
mergesort(int-low,int-high)