timetable.solver.strategy
Class Top10

java.lang.Object
  |
  +--timetable.solver.strategy.Top10
Direct Known Subclasses:
Top10Value

public class Top10
extends java.lang.Object

Třída zpravující skupinu n nejlepších prvků (prvků s nejmenší hodnotou).


Field Summary
protected  int count
          Počet prvků v poli
protected  int maximum
          Počet nejlepších hodnot
protected  int[] top
          Pole nejlepších prvků
protected  java.lang.Object[] value
          Pole příslušných hodnot prvků
 
Constructor Summary
Top10()
          Konstruktor.
Top10(int maximum)
          Konstruktor
 
Method Summary
 void add(int top, java.lang.Object value)
          Přidání prvku do skupiny.
 void addMax(int top, java.lang.Object value)
          Přidání prvku do skupiny.
 int countInteresting()
          Počet zajímavých hodnot v seznamu.
 java.lang.Object get(int i)
          Vrátí daný prvek ze skupiny.
static int random(int limit)
          Vygeneruje náhodné číslo 0<= x < limit.
 void reset()
          Vymaže všechny prvky z pole.
 int size()
          Vrátí počet prvků ve skupině
 int top(int i)
          Vrátí hodnotu daného prvku.
 boolean willBeAdded(int top)
          Bude prvek s danou hodnotou přidán do skupiny.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

maximum

protected int maximum
Počet nejlepších hodnot

top

protected int[] top
Pole nejlepších prvků

count

protected int count
Počet prvků v poli

value

protected java.lang.Object[] value
Pole příslušných hodnot prvků
Constructor Detail

Top10

public Top10(int maximum)
Konstruktor
Parameters:
maximum - počet prvků v poli

Top10

public Top10()
Konstruktor. Počet prvků ve skupině bude 10.
Method Detail

size

public int size()
Vrátí počet prvků ve skupině

reset

public void reset()
Vymaže všechny prvky z pole.

willBeAdded

public boolean willBeAdded(int top)
Bude prvek s danou hodnotou přidán do skupiny.
Parameters:
top - hodnota
Returns:
true, pokud bude (t.j. počet prvků ve skupině je menší než je kapacita pole nebo hodnota posledního prvku v pole je vyšší než vstupní hodnota

add

public void add(int top,
                java.lang.Object value)
Přidání prvku do skupiny. Prvek bude přidán pouze tehdy, pokud splňuje podmínky: Prvek bude zařazen na příslušnou pozici dle hodnoty ( první s nejmenší hodnotou, dále vzestupně)
Parameters:
top - hodnota prvku
value - prvek

addMax

public void addMax(int top,
                   java.lang.Object value)
Přidání prvku do skupiny. Prvek bude přidán pouze tehdy, pokud splňuje podmínky: Prvek bude zařazen na příslušnou pozici dle hodnoty ( první s největší hodnotou, dále vzestupně) Poznámka: funkce add a addMax nelze kombinovat !!!
Parameters:
top - hodnota prvku
value - prvek

get

public java.lang.Object get(int i)
Vrátí daný prvek ze skupiny.
Parameters:
i - pozice prvku ve skupině
Returns:
požadovaný prvek

top

public int top(int i)
Vrátí hodnotu daného prvku.
Parameters:
i - pozive prvku ve skupině
Returns:
hodnota prvku

random

public static int random(int limit)
Vygeneruje náhodné číslo 0<= x < limit.
Parameters:
limit - limit
Returns:
náhodné číslo

countInteresting

public int countInteresting()
Počet zajímavých hodnot v seznamu. Tj. počet takových prvků, kde hodnota nejhoršího prvku není větší než dvojnásobek hodnoty nejlepšího prvku.
Returns:
počet zajímavých hodnot