2013-07-22 2 views
-3

Я изучаю Java из Введение в Программу Java 9-е изд. Liang Y. D. и с некоторыми трудностями с одним из примеров, относящихся к массивам. Я хотел бы выполнить сортировку процедуру со следующим:работает алгоритм без основного класса?

public class SelectionSort 
{ 
public static void selectionSort (double[] list) 
{ 
    for (int i = 0; i < list.length - 1; i++) 
    { 
     double currentMin = list[i]; 
     int currentMinIndex = i; 

     for (int j = i + 1; j < list.length; j++) 
     { 
      if (currentMin > list[j]) 
      { 
       currentMin = list[j]; 
       currentMinIndex = i; 
      } 
     } 

     if (currentMinIndex != i) 
     { 
      list[currentMinIndex] = list[i]; 
      list[i] = currentMin; 
     } 
    } 
} 
} 

Проблема заключается в том, что не существует

Main (String[] args) 

вместо этого мы имеем:

selectionSort (double[] list) 

Теперь я хотел бы выполнить выше, на

double[] list = {1, 9, 4.5, 6.6, 5.7, -4.5}; 
SelectionSort.selectionSort(list) 

или любые другие комбинации, но я продолжаю получать Error: не удалось найти или загрузить основной класс. Есть ли способ выполнить это в командной строке без загрузки основного класса?

+0

Создайте класс TestSelectionSort, который имеет основной метод и использует этот класс в основном классе теста. –

+1

Принимает ставки, когда кто-то предложит использовать статический блок инициализатора. , , – ruakh

+0

@ruakh Я пошел вперед и посоветовал против него. – Jeffrey

ответ

6

Сделать основной класс.

public class ArrayTest { 
    public static void main(String[] args) { 
     double[] list = { }; 
     SelectionSort.selectionSort(list); 
    } 
} 

Примечание: ли НЕ делать this. Это плохая практика и в любом случае не будет работать в новых версиях Java.

+1

+1. В этом случае для быстрого тестирования этот «главный» метод можно добавить к существующему классу «SelectionSort». – ruakh

+0

@ruakh До тех пор, пока у вас есть доступ к источнику, конечно – Jeffrey

Смежные вопросы