VYHLEDÁVÁNÍ V ASOCIATIVNÍM POLI
PROBLÉM
Je dáno pole A.1,...,A.N navzájem různých prvků a hledaná hodnota V. Vyhledávací funkce vrací index V, jestliže se V nachází v poli A., jinak vrací N+1.
ALGORITMUS
Pouhým porovnáním s prvky pole není možné provést vyhledání v průměru rychleji než za lg N kroků. V jazyce Rexx ale můžeme jednoduše uložit prvky pole A.1,...,A.N jako indexy asociativního pole AA. a hodnotuV použít jako index v poli AA.
IMPLEMENTACE
Jednotka: program
Parametr: přirozené číslo N
Poznámky:
Navzájem různé prvky pole A. jsou vkládány z klávesnice. V další fázi uživatel zadá hodnotu V. Program zobrazí index V v poli A. nebo zobrazí N+1, když hodnota V není v poli A. obsažena. Program končí, zadá-li uživatel hodnotu %.
parse arg N
AA. = N + 1
say "Vytváření pole A."
do J = 1 to N
say J". prvek?"
parse linein A.J; Aj = A.J; AA.Aj = J
end
do forever
say "Zadej V"
parse linein V
if V = "%" then exit
say "Index prvku " V "v poli A. je" AA.V || "."
end
|
SOUVISLOSTI