Problem z sortowaniem

0

Witam,

Mam do napisania program ktory symuluje dzialanie dysku dla metody SSTF.
Mam problem z napisaniem algorytmu dla sortowania po pozycji glowicy.
http://www.prz.rzeszow.pl/we/katedry/zsc/projekty/2000/3/dysk.html <-link do opisu algorytmu.

class Zadanie
{ int nrbloku;
  int czasZgloszenia;

public Zadanie(){

nrbloku=(int)(Math.random()*100);
czasZgloszenia = (int)(Math.random()*100);}

public Zadanie(Zadanie zad){
nrbloku=zad.nrbloku;
czasZgloszenia=zad.czasZgloszenia;
}

public int getNrBloku(){
return nrbloku;
}

public int getCzas(){
return czasZgloszenia;
}
}
 
 
 



 class Dysk {

    ArrayList<Zadanie> dysk;
    int max;
    
    
public Dysk(int max){

dysk=new ArrayList<Zadanie>();

for(int i=0;i<max;i++)

dysk.add(new Zadanie());

}

Tak wygladaja klasy Zadanie i Dysk.

public void SSTF(){
int min=9999;
 for(int j=0;j<dysk.size();j++){
//   
  System.out.println(dysk.get(j).getNrBloku());}
     System.out.println(" Wylosowane liczby");

   
     for(int j=0;j<dysk.size();j++){
        for(int i=1;i<dysk.size();i++)
        { temp= Math.abs(dysk.get(j).getNrBloku()-dysk.get(i).getNrBloku());
    
    
        if(min>temp || temp!=0)
        {  min=temp;
   tab[j]=min;}
        }
        
    System.out.println(tab[j]);
      
   }
}

A tak wyglada metoda sstf.
Problem jest taki ,że liczby np 34,87,45,32,65 powinny byc ulozone w kolejnosci-
34,32,45,65,87
Jedyny pomysl jaki mialem do tej pory opieral sie na zliczeniu najmniejszych odleglosci dla poszczegolnych liczb ale ta funkcja zle to liczy prosze o jakies wskazowki :)

0

Jestem lajkiem co do programowania - wiec nie wiem czy ja na pewno mam racje ;) w razie co sie nie sugeruj.
Ale słyszałem o takiej metodzie "sort" klasy Arrays. Sortuje ona tablice (czy liste to nie wiem na 100%).
Mozesz też użyc algorytmu sortowania: http://www.algorytm.org/algorytmy-sortowania/

Nie wiem czy dobrze zrozumiałem twoją potrzebe - ale staram sie pomoc :D

pozdrawiam!

1 użytkowników online, w tym zalogowanych: 0, gości: 1