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 :)