Turnurilor din Hanoi; Sortar ra!ida ; Sortar !rin int r"la#ar ; Sortar !rin in# rti $inara;
CONCLU%II
&
NOTIUNI INTRODUCTIVE
M toda d !ro'ra(ar DIVIDE ET IMPERA "on#ta in i(!artir a !ro$l ( i initial d di( n#iuni )n* in doua #au (ai (ult !ro$l ( d di( n#iuni r du# +In ' n ral # , "uta i(!artir a in doua #u$!ro$l ( d di( n#iuni a!ro,i(ati- 'al #i anu( )n.&* + I(!artir a in #u$!ro$l ( ar lo" !ana "and di( n#iun a a" #tora d -in #u/i"i nt d (i"a ! ntru a /i r 0ol-at in (od dir "t1"a0ul d $a0a2+Du!a r 0ol-ar a " lor doua #u$!ro$l ( # , "uta /a0a d "o($inar a r 0ultat lor in - d r a r 0ol-arii intr 'ii !ro$l ( + M toda DIVIDE ET IMPERA # !oat a!li"a in r 0ol-ar a un i !ro$l ( "ar ind !lin #t ur(atoar l "onditii : # !oat d #"o(!un in 1 doua #au (ai (ult 2 #u!ro$l ( ; a" #t #u!ro$l ( #unt ind ! nd nt una /ata d alta 1o #u$!ro$l (a nu # r 0ol-a ! $a0a alt ia #i nu # /olo# #t r 0ultat " l ilalt 2; a" #t #u$!ro$l ( #unt #i(ilar "u !ro$l (a initiala; la randul lor #u$!ro$l ( l # !ot d #"o(!un 1da"a #t n " #ar2 in alt #u$!ro$l ( (ai #i(!l ; a" #t #u$!ro$l ( #i(!l # !ot #olutiona i( diat !rin al'orit(ul #i(!li/i"at+ D oar " !utin !ro$l ( ind !lin #" "onditiil d (ai #u# 3a!li"ar a ( tod i #t d #tul d rara+ Du!a "u( #u' r a0a #i nu( l 4d #!art #i #ta!an #t 4 ta! l r 0ol-arii un i !ro$l ( 1 nu(ita !ro$l (a initiala 2 in DIVIDE ET IMPERA #unt : d #"o(!un r a !ro$l ( i initial in #u$!ro$l ( ind ! nd nt 3#(ilar !ro$l ( i d $a0a 3d di( n#iuni (ai (i"i ; d #"o(!un r a tr !tata a #u$!ro$l ( lor in alt #u$!ro$l ( din " in " (ai #i(!l 3!ana "and # !ot r 0ol-a i( diata 3!rin al'orit(ul #i(!li/i"at ; r 0ol-ar a #u$!ro$l ( lor #i(!l ; "o($inar a #olutiilor 'a#it ! ntru "on#truir a #olutiilor #u$!ro$l ( lor d di( n#iuni din " in " (ai (ari ; "o($inar a ulti( lor #olutii d t r(ina o$tin r a #oluti i !ro$l ( i initial + M toda DIVIDE ET IMPERA ad(it o i(!l ( ntar r "ur#i-a 3d or " #u$!ro$l ( l #unt #i(ilar !ro$l ( i initial 3 dar d di( n#iuni (ai (i"i + Prin"i!iul /unda( ntal al r "ur#i-itatii #t autoa! lar a unui #u$!ro'ra( "and a" #ta #t a"ti-;" a " # inta(!la la un ni- l 3# inta(!la la ori" ni- l 3a-and 'ri5a #a a#i'ura( "onditia d t r(inar al a! lurilor r ! tat +A# (anator # inta(!la #i in "a0ul ( tod i DIVITE ET IMPERA ; la un anu(it ni- l #unt doua !o#i$ilitati : #6a a5un# la o 1#u$2 !ro$l (a #i(!la " ad(it o r 0ol-ar i( diata "a0 in "ar # r 0ol-a 1#u$2!ro$l (a #i # r -in din a! l 1la #u$!ro$l (a ant rioara3d di( n#iuni (ai (ari2; #6a a5un# la o 1#u$2 !ro$l (a "ar nu ad(it o r 0ol-ar i( diata 3 "a0 in "ar o d #"o(!un ( in doua #au (ai (ult #u$!ro$l ( #i ! ntru /i "ar din l # "ontinua a! luril r "ur#i- 1al !ro" durii #au /un"ti i2+ In ta!a /inala a ( tod i DIVIDE ET IMPERA # !rodu" "o($inar a #u$!ro$l ( lor 1r 0ol-at d 5a2 !rin # "- nt l d r - nir din a! luril r "ur#i- + Eta! l ( tod i DIVIDE ET IMPERA 1!r 0 ntat ant rior2# !ot r !r 0 nta !rin ur(atorul #u$!ro'ra( ' n ral 1!ro" dura #au /un"ti 2r "ur#i- ,!ri(at in li($a5 natural: Su$!ro'ra( DIVIMP 1PRO72; Da"a PRO7LEMA PRO7 #t #i(!la Atun"i # r 0ol-a #i # o$tin #olutia SOL 8
Alt/ l ! ntru i913: , "uta DIVIMP1PRO72 #i # o$tin SOL1; S "o($ina #olutiil SOL 13+++ 3SOL ; #i # o$tin SOL; S/ar#it <#u$!ro'ra(; D "i 3#u$!ro'ra(ul DIVIMP # a! l a0a ! ntru !ro$l (a initiala PRO7;a" a#ta ad(it d #"o(!un r a in ; #u$!ro$l ( #i(!l ;! ntru a" #t a # r a! l a0a r "ur#i- #u$!ro'ra(ul ;in /inal # "o($ina #olutiil a" #tor ; #u$!ro$l ( + D o$i" i !ro$l (a initiala # d #"o(!un in doua #u$!ro$l ( (ai #i(!l ; in a" #t "a0 ta! l ' n ral al ( tod i DIVIDE ET IMPERA # !ot r !r 0 nta "on"r t3in li($a5 !# udo"od 3!rintr6o !ro" dura r "ur#i-a a#t/ l : Pro" dura DIVIMP1li3l#3#ol2; Da"a 11l#6li2=9 !#2 Atun"i RE%OLVA 1li3l#3#ol2; Alt/ l DIVIDE 1li3(3l#2; DIVIMP1li3(#ol12; DIVIMP1(3l#3#ol&2; COM7INA1#ol13#ol&3#ol2; S/ar#it< !ro" dura; Pro" dura DIVIMP # a! l a0a ! ntru !ro$l (a initiala "ar ar di( n#iun a intr li(ita in/ rioara 1li2 #i li(ita in/ rioara1l#2;da"a 1#u$2!ro$l (a #t #i(!la 1l#6li=9 !#23atun"i !ro" dura RE%OLVA ii a/la #olutia i( diat #i # !rodu" intoar" r a din a! lul r "ur#i-;da"a 1#u$2!ro$l (a #t 1in"a2 "o(!l ,a 3atun"i !ro" dura DIVIDE o i(!art in doua #u$!ro$l ( 3al 'and !o0itia ( intr li(it l li #i l# ;! ntru /i "ar din " l doua #u$!ro$l ( # r a! l a0a r "ur#i- !ro" dura DIVIMP; in /inal 3la intoar" ril din a! luri # !rodu" "o($inar a " lor doua #oluitii #ol1 #i #ol& !rin a! lul !ro" durii COM7INA+
A" #t #u$!ro$l ( #unt ind ! nd nt 3d oar " ti5 l initial 1 ! "ar #unt di#!u# di#"uril 2 3ti5 l /inal #i ti5 l int r( diar #unt di/ rit +Nota( H1n3A373C29#irul (utarilor a n di#"uri d ! A ! 73 /olo#ind C+ PENTRU n91 A7 n?1 H1n3A373C29 H1n613A3C3723A73 H1n613C373A2 !ro'ra( turnuril <Aanoi; -ar n:$Bt ; !ro" dur Aanoi1n:$Bt ;a3$3":"Aar2; $ 'in i/ n91 tA n Crit ln1a3DD3$2 l# $ 'in Aanoi1n613a3"3$2; Crit ln1a3DD3$2; Aanoi1n613"3$3a2; nd; nd; $ 'in Crit 1Enr di#"uri ! ti5a A 9D2;r adln1n2; Crit ln1E(utaril #unt ur(atoar l :D2; Aanoi1n3DAD3D7D3DCD2; r adln;r adln; nd+
-ar i353(odi3(od53(:int ' r; (an:r al; $ 'in i:9li; 5:9l#; (odi:9J; (od5:961; CAil i=5 do $ 'in i/ -)i*?-)5* tA n $ 'in (an:9-)i*; -)i*:9-)5*; -)5*:9(an; (:9(odi ; (odi:96(od5; (od5:96(; nd; i:9iH(odi; 5:95H(od5; nd; !o0:9i; nd; !ro" dur Fui":1li3l#:int ' r2; $ 'in i/ li=l# tA n $ 'in :::9!o01li3l#2; Fui":1li3:612; Fui":1:H13l#2; nd; nd; $ 'in Crit 1E"at l ( nt ar - "torul K9D2;r adln1n2; /or i:91 to n do $ 'in Crit 1Eta#tati l ( ntul E3i3D9D2; r adln1-)i*2; nd; Fui":113n2; Crit ln1E- "torul ordonat #t :D2; /or i:91 to n do Crit ln1-)i*2; r adln; nd+
OBSERVATIE
a"a l ( ntul # a/la in #tan'a 3atun"i # "o(!ara "u l ( nt l din dr a!ta lui #i # #ar 15:956 d 12 l ( nt l (ai (ari d "at l ; da"a l ( ntul # a/la in dr a!ta 3atun"i # "o(!ara "u l ( nt din #tan'a lui #i # #ar 1i:9iH12 l ( nt l (ai (i"i d "at l+
!ro" dur di-i1li3l#:Cord; -ar a:- "tor2; -ar (:Cord; $ 'in i/ 1l#6li2=91 tA n #"Ai($a1li3l#3a2; l# $ 'in (:91liHl#2di- &; di-i1li3(3a2; di-i1(H13l#3a2; int r"la#1li3(3l#3a2; nd; nd; $ 'in Crit 1E"at l ( nt ar - "torulK9D2;r adln1n2; /or i:91 to n do $ 'in Crit 1Eta#tati l ( ntulD3i3D9D2; r adln1-)i*2; nd; di-i113n3-2; Crit ln1E- "torul #ortat #t :D2; /or i:91 to n do Crit ln1-)i*2; nd+
OBSERVATII
( "ani#(ul ' n ral d ti! Di-id t I(! ra # 'a# #t i(!l ( ntat in !ro" dura di-i ; a#t/ l d a$ordar a !ro$l ( i #ortarii unii - "tor "ondu" la "ono(i d ti(! d "al"ul o 3d oar " o! ratia d int r"la#ar a doi - "tori d 5a ordonati #t /oart ra!ida 3iar ordonar a ind ! nd nta " lor doua 5u(atati1(ini6 - "tori2 "on#u(a in total a!ro,i(ati- a doua !art din ti(!ul "ar ar /i n " #ar ordonarii - "torului luat "a intr ' +
i/ -)i*=-)5* tA n !o0:9li l# !o0:9i l# i/ l#6li91 tA n i/ -)i*=-)l#* tA n i/ -)i*?9-)li* tA n !o0:9l# l# !o0:9li l# !o0:9i l# $ 'in (:91liHl#2di- &; i/ -)i*=-)(* tA n !o0:9!o01li3(3i2 l# !o0 :9!o01(3l#3i2; nd; nd; !ro" dur d !la#ar 1:3i:int ' r2; -ar (an:r al; 5:int ' r; $ 'in i/ :=i tA n $ 'in (an:9-)i*; /or 5:9I doCnto :H1 do -)5*:9-)561*; -):*:9(an; nd; nd; $ 'in Crit 1E"at l ( nt ar - "torulK9D2;r adln1n2; /or i:91 to n do $ 'in Crit 1Eta#tati l ( ntul E3i3D9D2;r adln1-)i*2; nd; /or i:9& to n do $ 'in ::9!o0113i613i2; d !la#ar 1:3i2; nd; Crit ln1E- "torul ordonat #t :D2; /or i:91 to n do Crit ln1-)i*2; r adln; nd+
CONCLU'II
O
Al'orit(ii d ti! Di-id t I(! ra au $una "o(!ortar in ti(! 3da"a # ind !lin #" ur(atoar l "onditii: di( n#iunil #u$!ro'ra( lor1in "ar # i(!art !ro$l (a initiala 2#unt a!ro,i(ati- 'al 1!rin"i!iul $alan#arii2; li!# #" /a0 l d "o($inar a #olutiilor #u$!ro$l ( lor1"autar $inara2+
1J