Witam,
jestem uczniem drugiej klasy liceum i na dzisiejszych zajęciach pisałem pracę klasową z javy. Za zadanie miałem napisać program sortujący metodą przez kopcowanie. Program miał pozwolić na wpisanie ilu się chce elementów tablicy oraz jakich np:
dla 5:
3,2,1,5,3

Po kilku godzinach pracy w zespole 3-osobowym udało nam się napisać ten program(którego ciężko znaleźć w internecie lub jest to praktycznie niemożliwe).
Prosiłbym o sprawdzenie, czy kod który napisaliśmy jest poprawny(program działa, chodzi o to, czy jest poprawnie napisany). Oto kod:

     import javax.swing.*;
     
    public class sortowanie2
    {
     
     
            public static void main(String[] args)
            {
                   
     
                    int il;
                    String til;
                    til = JOptionPane.showInputDialog("podaj iloś elementów w wektorze");
                    il = Integer.parseInt(til);
                    int w[] = new int[il+1];
                    Wprowadzanie(w);
                    Wyswietlanie2(w);
                    w=Sortowanie(w);
                    Rozbieranie(w);
                    Wyswietlanie(w);
                   
                    System.exit(0);
            }
           
            public static void Wprowadzanie(int w[])
            {
                    int i;
                    String val ="0";
                    w[0] = Integer.parseInt(val);
                   
                    for(i=1; i<w.length; i++)
                    {
                            val = JOptionPane.showInputDialog("Podaj: "+(i)+" element");
                            w[i] = Integer.parseInt(val);
                    }
            }
            public static void Wyswietlanie2(int w[])
            {
                    int i;
                    String kopiec="";
                   
                   
                            for(i=1; i<w.length; i++)
                            {
                                    kopiec += w[i] +" ";
                            }
                           
                    JOptionPane.showMessageDialog(null, kopiec, "Komunikat112", JOptionPane.INFORMATION_MESSAGE);
            }
            public static void Wyswietlanie(int w[])
            {
                    int i;
                    String kopiec="";
                   
                   
                            for(i=0; i<w.length-1; i++)
                            {
                                    kopiec += w[i] +" ";
                            }
                           
                    JOptionPane.showMessageDialog(null, kopiec, "Komunikat112", JOptionPane.INFORMATION_MESSAGE);
            }
            public static int [] Sortowanie(int w[])
            {
                    int i, j, k, x;
                      for(i = 0; i <=w.length-1; i++)
                      {
                        j = i; // j-liść
                        k = (int) Math.floor (j / 2); // k-pozycja elementu nadrzędnego (przodka)
                        x = w[i]; // zapamiętuje wstawiany element
                      
                        while(k>0 && w[k]<x){
                           
                          w[j] = w[k];
                          j = k;
                          k = (int) Math.floor (j / 2);
                          
                        }
                        w[j] = x;
                      }return w;
     
            }
     
           
           
            public static void Rozbieranie(int w[])
            {
                    int i, a, j, k, m,b;
                    for(i=w.length-1; i>=1; i--)
                    {
                            a=w[0];
                            w[0] = w[i];
                            w[i]=a;
                            j=0;
                           
                            for(k=0; k<i; k=j+j)
                            {
                                    if(k+1<i && w[k+1]>w[k])
                                    {                            
                                            m=k+1;
                                    }
                                    else
                                    {
                                    m=k;   
                                    }
                                   
                                    if(w[m]<=w[j])
                                            break;
                                    b=w[j];
                                    w[j] = w[m];
                                    w[m]=b;
                                    j=m;
                            }
                    }
            }
           
    } 

Mam nadzieję, że kiedyś komuś przyda się ten program.