遇到此方法的问题,编译错误

时间:2014-03-15 19:56:17

标签: java

我在第21行遇到错误“找不到符号符号方法quickSort(int [],int,int),我不确定为什么会发生这种情况。

import java.util.Random;

  public class timeQuickSort {

  public static void main(String[] args) {
      int size = 16;
      int max = 10;
      int[] array = new int[size];

      Random random = new Random();

      random.nextInt(max);

      for (int i = 0; i < size; i++) {
          array[i] = random.nextInt(max);
      }  

      long result;

      long startTime = System.currentTimeMillis();
      quickSort(array,  100,  array.length-1);

      long endTime = System.currentTimeMillis();
      result = endTime-startTime; 

      System.out.println("The quick sort runtime is " + result + " miliseconds");
  }
}

这是我的quickSort方法:

  public static void quickSort(int[] a, int p, int r)
  {
    if (p < r)
    {
      int q = partition(a,p,r);
      quickSort(a,p,q);
      quickSort(a,q+1,r);
    }
  }

2 个答案:

答案 0 :(得分:2)

如果类名位于当前类之外的其他类中,则指定类名称以调用静态方法。 像:

class Sort{
  public static void quickSort(int[] a, int p, int r)
  {
    if (p < r)
    {
    int q = partition(a,p,r);
    quickSort(a,p,q);
    quickSort(a,q+1,r);
    }
  }
}

并在你的班级中调用它:

    Sort.quickSort(array,  100,  array.length-1);

答案 1 :(得分:1)

如果该方法在另一个类中声明,则需要通过显式使用其他类名来调用它。

因此,如果调用另一个类,比如Sorter,则只需要调用

Sorter.quicksort(a, p, q);
Sorter.quicksort(a, q+1, r);