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


Obálka Obsah Index Hlavní stránka Rexx   Mail

změněno 30. července 2001
Copyright © 2000-2001 Vladimír Zábrodský, RNDr.