Возникли проблемы с этим методом, ошибка компиляции

1

Я получаю сообщение об ошибке в строке 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 ответа

1
Лучший ответ

Если метод объявлен в другом классе, вам необходимо вызвать его, явно используя другое имя класса.

Итак, если вызывается другой класс, скажем, Sorter, вам просто нужно позвонить

Sorter.quicksort(a, p, q);
Sorter.quicksort(a, q+1, r);
  • 0
    вау, должен был сам это увидеть. Спасибо!
  • 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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню