[Java] Debug programu


(Rdrfear) #1

Witam. Miałem za zadanie napisać program, który znajduje k-ty, co do wielkości, element w tablicy przy pomocy algorytmu "magiczne piątki".

Napisałem i działa.

Dla danych:

2 - ilość zestawów danych

5 - długość tablicy

1 2 3 4 5 - elementy tablicy

3 - liczba zapytań o dany element

1 2 3 - indeksy elementów do znalezienia po posortowaniu

_________ kolejny zestaw

5 - długość tablicy

5 3 4 4 3 - elementy tablicy

5 - liczba zapytań o dany element

2 5 1 3 4 - indeksy elementów do znalezienia po posortowaniu

Wypisuje:

1 1

2 2

3 3

__

2 3

5 5

1 3

3 4

4 4

Jednak dla pewnych danych występuje błąd - log:

Exception in thread "main" java.lang.NoClassDefFoundError: Source (wrong name: source/Source)

	at java.lang.ClassLoader.defineClass1(Native Method)

	at java.lang.ClassLoader.defineClass(ClassLoader.java:634)

	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

	at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)

	at java.net.URLClassLoader.access$000(URLClassLoader.java:73)

	at java.net.URLClassLoader$1.run(URLClassLoader.java:212)

	at java.security.AccessController.doPrivileged(Native Method)

	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)

	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)

	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)

	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334)

Could not find the main class: Source. Program will exit.

Jeśli ktoś wie o co chodzi, proszę o podpowiedź. W razie czego mogę wstawić kod. Dzięki.


(kostek135) #2

Błąd informuje tylko, że nie ma maina w kodzie (bądź nie może go znaleźć, ze względu na package, etc.) i nie jest to błąd runtime, musiałeś go dostać podczas kompilacji. Poza tym algorytm magicznych piątek dla problemu krotnego wyznaczenia k-tego elementu nie jest optymalnym rozwiązaniem, jeśli musimy wyznaczyć duży zbiór elementów. W formacie wejścia piszesz coś o sortowaniu, algorytm mediany median, nie sortuje nic poza kliką piątek, jak możemy szukać np. 3 elementu w ciągu posortowanym zatem, skoro piątki nie sortują całości ciągu?

Poza tym nie wiem co oznacza format wyjścia, ale jeśli

1 1 -znaczy k-ty element [spacja] wartość

2 2

3 3

to wiedz, że twój program marnie działa: w ciągu 1 2 3 4 5, pierwszym co do wielkości jest 5.

jeśli natomiast druga liczba oznacza indeks na którym stoi k-ty co do wielkości wyraz ciągu to w drugim przykładzie masz

1 3, z pewnością pierwszy co do wielkości wyraz nie stoi na 3 miejscu bo jest tylko jedna 5 i jest ona największa - tak czy siak algorytm do poprawy.


(Rdrfear) #3

Przepraszam za zamieszanie, udało mi się w końcu poprawić wszystko tak, żeby działało. Dzięki.