VŠECHNY PÁRY ČÍSEL A.I, A.J TAKOVÉ, ŽE A.I+A.J=X

PROBLÉM
Je dáno pole navzájem různých čísel A.1,A.2,...,A.N a číslo X. Určete všechny dvojice čísel A.I,A.J takové, že A.I+A.J=X.

IMPLEMENTACE
Jednotka: fragment programu
 
Vazby: QUICKSORT
 
Výsledek: Program zobrazí všechny dvojice A.I,A.J takové, že A.I+A.J=X
 

...
call QUICKSORT N
S = ""; do I = 1 to N; S = S A.I; end; say S "|" X
I = 1; J = N
do until J <= I
  select
  when A.I + A.J < X then I = I + 1
  when A.I + A.J > X then J = J - 1
  otherwise
    say "("A.I"," A.J") and ("A.J"," A.I")"
    I = I + 1; J = J - 1
  end
end
if J = I & 2 * A.I = X then say "("A.I"," A.I")"
exit
...

 

Literatura
Knuth D. E. Sorting and Searching, vol. 3 of The Art of Computer Programming
Addison-Wesley, 1973


Obálka Obsah Index Hlavní stránka

změněno 8. srpna 2001
Copyright © 2000-2001 Vladimír Zábrodský, RNDr.