Czesc.
Napisalem heapsorta w javie, jendak po przejsciu procesu kompilacji nie moge uruchomic programu. Wywala mi komunikat:
Exception in thread "main" java.lang.NoSuchMethodError: main
import java.io.*;
public class imp
{
private static int[] tab={1,3,9,8,2,4};
private static int n;
/* int[] tab={1,3,4,2,8,9};*/
public static void sortuj(int[] tab)
{
/* sortowanie poczawszy od pierw elementu tablicu */
/*tab=tab[0]; */
n=tab.length; /* wyznaczenie dlugosci tablicy <potrzebne do fora */
heapsort();
drukuj();
}
private static void heapsort()
{
budujdrzewo();
while (n>1)
{
wymiana(0, n);
oddolu(0);
n--;
}
}
private static void budujdrzewo()
{
for(int i=(n/2)-1; i>1; i--) /* sprawdza warunek dla danego wierzcholka<korzenia drzewa */
oddolu(i);
}
private static void oddolu(int i)
{
int w=2*i+1; /* pierwszy lisc od dolu */
while (w<n)
{
if(w+1<n) /* jezeli jest mniejszy lisc */
if(tab[w+1]>tab[w]) w++; /* jezeli jest on najwiekszym synem */
if(tab[i]>=tab[w])
return; /* jak jest ok to koniec, przekaze argument do fkcji budujdrzewo, a jak nie: */
wymiana(i,w);
}
}
private static void wymiana(int a, int b){
int t=tab[a];
tab[a]=tab[b];
tab[b]=t;
}
private static void drukuj()
{
System.out.println("Uporzadkowana tablica:");
n=tab.length;
for(int g=0; g<n; g++){
System.out.printf(""+tab[g]);
}
}
}