• Nem Talált Eredményt

6. Adatszerkezetek, algoritmusok ´ es bonyolults´ agelm´ elet 176

6.2. Keres´ es, rendez´ es

6.2.2. Rendez´ esi feladatok

A fenti minimumkiv´alaszt´asn´al egy nehezebb feladat az a1, a2, . . . , an elemek rendez´ese.

Itt n¨ovekv˝o sorredenbe kell raknunk az elemeket ´es ehhez csak ¨osszehasonl´ıt´asokat v´ egez-het¨unk ill. azok eredm´enyeire t´amaszkodhatunk. El˝osz¨or megbecs¨ulj¨uk, hogy tetsz˝oleges, a rendez´est v´egrehajt´o algoritmusnak legrosszabb esetben legal´abb h´any ¨osszehasonl´ıt´ast kell v´egeznie. Tegy¨uk fel, hogy az algoritmus el˝osz¨or az ai1 ´es aj1 elemeket hasonl´ıtja

¨ossze, ezt k¨ovet˝oen az ai2 ´es aj2 elemeket, ´altal´aban az l-dik ¨osszehasonl´ıt´asban az ail

´

es ajl elemek ker¨ulnek ¨osszehasonl´ıt´asra. Ha az algoritmus minden esetben legfeljebb

k ¨osszehasonl´ıt´as ut´an rendezni tudja az a1, a2, . . . , an sz´amokat, akkor az algoritmus fut´as´ahoz hozz´arendelhet¨unk egy k hossz´u 0/1 sorozatot, melynek az l-dik jegye 0, ha ail < ajl, k¨ul¨onben az l-dik jegy 1 (azaz, ha ail > ajl, vagy ha az l-dik ¨osszehasonl´ıt´asra m´ar nem is ker¨ul sor).

Az itt a l´enyeges ´eszrev´etel, hogy ennek a k hossz´u 0/1 sorozatnak meg kell hat´ a-roznia az a1, a2, . . . , an sz´amok rendez´es´et. Az els˝o ¨osszehasonl´ıt´asnak ugyanis nemcsak az eredm´enye ismert, hanemai1 ´es aj1 is, hiszen az algoritmusnak mindig ugyan´ugy kell kezd˝odnie. Ennek az ¨osszehasonl´ıt´asnak az ismeret´eben ismerj¨uk azai2 ´es aj2 elemeket.

Az ¨osszehasonl´ıt´asuk eredm´eny´et ismerj¨uk a sorozatb´ol, innen ad´odik, hogy mi lesz ai3 ill. aj3, s´ıt. Teh´at a khossz´us´ag´u 0/1 sorozat meghat´aroz minden elv´egzett ¨ osszehasonl´ı-t´ast, ´es persze ezek kimenetel´et is, ez´ert a sorozatnak meg kell hat´aroznia aza1, a2, . . . , an elemek rendez´es´et is.

Eszerint az algoritmus fut´as´at le´ır´o k hossz´us´ag´u 0/1 sorozat legal´abb annyif´ele le-het, mint az a1, a2, . . . , an lehets´eges rendez´eseinek sz´ama. Minden egyes rendez´es az a1, a2, . . . , an elemek egy permut´aci´oj´anak felel meg, ´es viszont. A lehets´eges k hossz´ u-s´ag´u sorozatok sz´ama pedig nyilv´an 2k. Ez´ert n! ≤ 2k, vagyis k ≥ dlog2(n!)e = log2n+ log2(n−1) + log2(n−2) +. . .+ log21≥(log2n+ log2(n−1) + log2(n−2) +. . .+ log2 n2)+(log2(n2−1)+. . .+log24)≥ n2·log2 n2+(n2−4) log24 = n2(log2(n)−1)+2(n2−4) =

1

2(nlog2n)−n2+2(n2−4) = 12(nlog2n)+n2−8≥ 12(nlog2n), ut´obbi egyenl˝otlens´egn≥16 eset´en igaz. (A becsl´eseket a vizsg´ara nem kell pontosan reproduk´alni, el´eg az eredm´enyt ismerni.)

Bubor´ekrendez´es (bubble sort)

Ezek ut´an konkr´et, ¨osszehasonl´ıt´as-alap´u rendez˝oalgoritmusokat vizsg´alunk. A bubor´ ek-algoritmus inputja egy n m´eret˝u T t¨omb, amiben a rendezend˝o sz´amokat t´aroljuk. Az output egy n m´eret˝u t¨omb, melyben az inputt¨omb elemei n¨ovekv˝o sorrendben k¨ovetik egym´ast. Az bubor´ekalgoritmus f´azisokb´ol ´all. Minden f´azisban az algoritmus az aktu´alis T t¨omb¨on hajt v´egre ¨osszehasonl´ıt´asokat, ´es cser´eket. Egy f´azisban azi-dik ¨ osszehasonl´ı-t´as aT(i) ´esT(i+1) ¨osszehasonl´ıt´asa. HaT(i)> T(i+1), akkor felcser´elj¨uk a t¨ombi-dik

´

es (i+ 1)-dik elem´et (m´eg az (i+ 1)-dik ¨osszehasonl´ıt´as el˝ott). Egy f´azisban teh´atn−1

¨

osszehasonl´ıt´as, ´es legfeljebb n−1 csere t¨ort´enik. K¨onnyen l´athat´o, hogy az i-dik f´azis v´eg´ere az i legnagyobb elem a hely´ere ker¨ul, ez´ert legfeljebb n−1 f´azisra van sz¨uks´eg, vagyis a bubor´ekalgoritmus l´ep´essz´ama n2 konstanszoros´aval fel¨ulr˝ol becs¨ulhet˝o.

Kiv´alaszt´asos rendez´es (selection sort)

A kiv´alaszt´asos rendez´es egy A[1..n] t¨omb eset´en ´ugy m˝uk¨odik, hogy sorra megkeres-s¨uk az A[1..n], A[2..n], . . . , A[n−1..n] t¨omb¨ok minim´alis elemeit, amelyeket azonm´od felcser´el¨unk az adott t¨omb els˝o elem´evel. L´attuk, hogy a minimumkeres´es l´ep´essz´ama becs¨ulhet˝o az adott t¨omb m´eret´enek konstansszors´aval. Mivel maga a csere tov´abbi

konstans sz´am´u l´ep´es, ´ıgy az elj´ar´as l´ep´essz´ama legfeljebb konst·n2. Kicsit ´ovatosabb becsl´essel az ¨osszehasonl´ıt´asok sz´ama (n−1) + (n−2) +. . .+ 2 + 1 = n2

, a cser´ek sz´ama pedig legfeljebb n−1.

Besz´ur´asos rendez´es (insertion sort)

A besz´ur´asos rendez´es sor´an a rendezend˝o rekordokat egyenk´ent sz´urjuk be egy rende-zett t¨ombbe. Tipikus esetben az input egy rendezetlen A[1..n] t¨omb, az output pedig

”ugyanez” a t¨omb, amelyben a rekordok imm´ar a rendez´es szerint k¨ovetkeznek egym´as ut´an. A rendez˝oalgoritmus n besz´ur´asi l´ep´esb˝ol ´all. Az i-dik l´ep´es el˝ott a t¨omb¨unkben t´arolt els˝oi−1 rekord, azaz azA[1..i−1] r´eszt¨omb elemei m´ar n¨ovekv˝o sorrendbe vannak rendezve. A besz´ur´asi l´ep´esben bin´aris keres´essel megkeress¨uk az A[i] hely´et az aktu´ a-lis A[1..i−1] t¨ombben (legyen ez mondjuk a j-dik poz´ıci´o), majd a t¨omb (i−1)-dik, (i−2)-dik, . . . , j-dik elemeit eggyel jobbra mozgatjuk, v´eg¨ul A[i]-t beillesztjuk a t¨omb j-dik hely´ere. Vil´agos, hogy az n-dik besz´ur´as ut´an ´eppen a k´ıv´ant rendezett t¨omb¨ot kapjuk. Minden besz´ur´asn´al a keres´es legfeljebb blog2nc+ 1 ¨osszehasonl´ıt´ast ig´enyel, az adatmozgat´as ig´enye pedig legfeljebb n − 1. Az ¨osszl´ep´essz´am teh´at n2 konstans-szoros´aval becs¨ulhet˝o. Ha az a1, a2, . . . sz´amok eredetileg cs¨okken˝o sorrendben voltak, akkor a besz´ur´asos rendez´es adatmozgat´assal kapcsolatos l´ep´essz´ama m´ar ¨onmag´aban 1 + 2 + 3 +. . .+ (n−1) = n(n−1)2 , azaz legrosszabb esetben sz¨uks´eg van kb 12bn2 l´ep´esre.

Osszef´¨ es¨ul´eses rendez´es (merge sort)

Vannak a fentiekn´el jobb m´odszerek is. Az ¨osszef´es¨ul´eses rendez´es haszn´alja az ´un.

¨osszef´es¨ul´es elj´ar´ast, ami egy k m´eret˝u A ill. egy l m´eret˝u B rendezett t¨ombb˝ol k´esz´ıt egy k+l m´eret˝u rendezettC t¨omb¨ot. Az ¨osszef´es¨ul´es elj´ar´as ¨osszehasonl´ıt´asokat v´egez,

´

es az s-dik ¨osszehasonl´ıt´as ut´an, meghat´arozza a C t¨omb s-dik elem´et, ezt be´ırja a C t¨ombbe, ´es egy´uttal kit¨orli ezt az elemet az A ill. B t¨omb¨ok k¨oz¨ul a megfelel˝ob˝ol.

(Kezdetben a C t¨omb ¨ures.) Tegy¨uk fel, hogy az s-dik l´ep´es el˝ott az A t¨ombb˝ol m´ar kit¨or¨olt¨uk az els˝o ielemet, aB t¨ombb˝ol pedig az els˝oj elemet, ´es ezeket okosan be´ırtuk a C t¨ombbe. Az s-dik l´ep´esben ¨osszehasonl´ıtjuk az A t¨omb (i+ 1)-dik ´es a B t¨omb (j+ 1)-dik elem´et, a kisebbet kit¨or¨olj¨uk a megfelel˝o t¨ombb˝ol, ´es be´ırjuk aC t¨ombs-dik cell´aj´aba. Vil´agos, hogy az ¨osszef´es¨ul´es elj´ar´as azt adja, amit v´arunk, ´es az elv´egzett

¨osszehasonl´ıt´asok sz´ama legfeljebbk+l−1. (Kevesebb is lehet, ha id˝ok¨ozben valamelyik t¨omb elfogy: ekkor a marad´ek t¨omb elemeit minden tov´abbi ¨osszehasonl´ıt´as n´elk¨ul sorban be´ırhatjuk a C t¨ombbe.)

Az¨osszef´es¨ul´eses rendez´es egy rekurz´ıv algoritmus. Inputja egy n m´eret˝u t¨omb, ami a rendezend˝o sz´amokat t´arolja valamilyen sorrendben. Az output egy n m´eret˝u t¨omb, melyben az inputt¨omb elemei n¨ovekv˝o sorrendben k¨ovetik egym´ast. Az ¨osszef´es¨ul´eses rendez´es nem tesz m´ast, mint ¨osszef´es¨uli az A1 A2 rendezett t¨omb¨oket. A ravaszs´ag annyi, hogy A1 t¨omb ´ugy keletkezik, hogy (rekurz´ıv h´ıv´assal) ¨osszef´es¨ul´eses rendez´essel

rendezz¨uk az A t¨omb els˝o dn2e elem´et. Hasonl´oan, az A2 t¨omb az A t¨omb marad´ek bn2c elem´enek ¨osszef´es¨ul´eses rendez´es´evel keletkezik. (A rekurzi´o miatt sz¨uks´eges azt is deklar´alni, hogy egy 1 m´eret˝u t¨omb ¨osszef´es¨ul´eses rendez´ese egyszer˝uen abb´ol ´all, hogy az inputot (hipphopp) kiadjuk outputk´ent.)

Ha az ¨osszef´es¨ul´eses rendez´es egy n m´eret˝u t¨omb¨on legfeljebb f(n) ¨osszehasonl´ıt´ast ig´enyel, akkor az f(n)≤ ndlog2ne egyenl˝otlens´eg. n szerinti teljes indukci´oval igazoljuk, hogy ez minden n ∈ N-re fenn´all. Tegy¨uk fel, hogy n < N-re m´ar bizony´ıtottuk ezt. Ekkor f(N) ≤ val´oban legfeljebb ndlog2ne ¨osszehasonl´ıt´ast v´egez. (A becsl´eseket a vizsg´ara nem kell pontosan reproduk´alni, el´eg az eredm´enyt ismerni.) Azt sem neh´ez megmutatni, hogy az ¨osszef´es¨ul´eses rendez´es ¨osszl´ep´essz´ama (amibe teh´at nemcsak az ¨osszehasonl´ıt´asok sz´am´ıtanak bele) f(n) konstansszoros´aval becs¨ulhet˝o.

Kupacos rendez´es (heap sort)

A kupacos rendez´est legk´enyelmesebben egy rendezetlen t¨omb¨on tudjuk v´egrehajtani.

Ebb˝ol els˝o l´ep´esk´ent kupacot ´ep´ıt¨unk (legfeljebb konst·n l´ep´esben, ahol n a rekordok sz´ama), majd n egym´ast k¨ovet˝o MINT ¨OR m˝uvelet elv´egz´es´evel a rekordokat n¨ovekv˝o sorrendben kapjuk meg. Mivel egyetlen MINT ¨OR elv´egz´ese konst·log2n l´ep´est ig´enyel, az eg´esz elj´ar´as l´ep´essz´ama n·log2n alkalmas konstansszoros´aval fel¨ulr˝ol becs¨ulhet˝o.

Gyorsrendez´es (quick sort)

A gyorsrendez´es egy ´un. nemdeterminisztikus algoritmus, amely a v´eletlent is felhaszn´ al-ja a m˝uk¨od´es´ehez. A gyakorlatban egy determiniz´alt v´altozat´at szok´as alkalmazni, arra sz´am´ıtva, hogy a rekordok valamif´ele

”v´eletlen” sorrendben vannak, ´es elhanyagolhat´o az es´elye annak, hogy pont olyan sorrendb˝ol kiindulva kelljen a rendez´est v´egrehajtani, amely t´uls´agosan sok l´ep´est ig´enyel. Ha a gyorsrendez´est v´eletlen algoritmusnak tekint-j¨uk, akkor a v´arhat´o l´ep´essz´am´ar´ol tudjuk elmondani, hogy igen versenyk´epes, ha pedig a determinisztikus v´altozat´at tekintj¨uk, akkor b´ar az n´eh´any inputtal sok l´ep´esben v´egez,

´am az inputok d¨ont˝o t¨obbs´eg´en rendk´ıv¨ul gyors.

A gyorsrendez´es inputja egy A[1..n] rendezetlen t¨omb, outputja pedig a rekordok n¨ovekv˝o sorrendj´eben rendezett t¨omb. Az algoritmus alapja a PART´ICI ´O(s) elj´ar´as, ahol s az egyik (v´eletlen¨ul v´alasztott) rekord. A gyakorlatban az s rekordot a t¨omb

els˝o (A[1]) elem´enek szok´as v´alasztani. A PART´ICI ´O(s) elj´ar´as inputja egy X[1..k]

t¨omb ´es egy benne t´arolt s rekord, outputja pedig egy ´atrendezett t¨omb, amely h´arom r´eszb˝ol ´all: t¨omb elej´ere, mondjuk azX[1..t] t¨ombbe gy˝ujtj¨uk azs-n´el kisebb rekordokat, k¨oz´epen, azX[t+1..l] t¨ombben tal´alhat´ok azs-sel egyenl˝o rekordok, m´ıg azXt¨omb v´eg´en elhelyezked˝o X[l+ 1..k] t¨ombben s-n´el nagyobb rekordok k¨ovetkeznek. Ezt ´ugy szok´as implement´alni, hogy elkezdj¨uk kiolvasni azX[1], x[2], . . . rekordokat, am´ıg egys-n´el nem kisebb rekordot tal´alunk, mondjukX[i]-t. Ugyancsak addig olvassuk azX[k], X[k−1], . . . rekordokat, eg´eszen addig, am´ıg egy s-n´el kisebb rekordot tal´alunk, mondjuk X[j]-t.

Ekkor kicser´elj¨uk X[i]-t ´es X[j]-t, majd folyatjuk az elj´ar´ast, az X[i+ 1], X[i+ 2], . . . rekordok ill. az X[j−1], X[j−2], . . . rekordok olvas´as´aval. Akkor ´allunk meg, ha az els˝o sorozatban s-n´el nem kisebbet, ill. a m´asodi sorozatban s-n´el kisebb rekordot tal´alunk, amelyeket ism´et felcser´el¨unk, majd folytatjuk az elj´ar´ast. Ha a k´et olvas´asi sorozat

¨

ossze´er, akkor e kapott rekordt´ol balra s-n´el kisebb rekordok vannak a t¨ombben, m´ıt att´ol jobbra azs-n´el nem kisebbek tal´alhat´ok. Ezt k¨ovet˝oen azs-sel egyenl˝o rekorodokat a t¨omb m´asodik r´esz´enek elej´ere mozgatjuk.

A PART´ICI ´O(s) elj´ar´as seg´ıts´eg´evel a gyorsrendez´es algoritmust a rekurz´ıv QUICKSORT(A[1..n]) elj´ar´assal val´os´ıtjuk meg a k¨ovetkez˝o m´odon. V´egrehajtunk egy PART´ICI ´O(s) elj´ar´ast az

A[1..n] t¨ombre ´es egy benne t´arolt v´eletlensrekordra. A kapott A[1..k], A[k+ 1..l], A[l+ 1..n] part´ıci´on els˝o t¨ombj´en v´egrehajtunk egy QUICKSORT(A[1..k]) elj´ar´ast, m´ıg a har-madik r´eszen egy QUICKSORT(A[l+ 1..n]) elj´ar´ast.

Az input t¨ombn m´erete szerinti indukci´oval k¨onnyen l´athat´o, hogy a QUICKSORT elj´ar´as helyesen m˝uk¨odik. Nem trivi´alis, de igazolhat´o, hogy a QUICKSORT elj´ar´as

´

atlagos l´ep´essz´ama az n ·log2n konstanszoros´aval fel¨ulr˝ol becs¨ulhet˝o. Az is k¨onnyen l´athat´o, hogy a QUICKSORT l´ep´essz´ama legrosszabb esetben (amikoris a v´eletlen¨ul v´alasztott s rekord mindig a legkisebb vagy a legnagyobb elem az adott t¨ombben) az n2-nek konstansszorosa alkalmas pozit´ıv konstansra.

Az eddig ismertetett rendez´esi algoritmusok mindegyike ¨osszehasonl´ıt´as-alap´u volt,

´

es ez´ert teljes¨ult r´ajuk a szakasz elej´en igazolt inform´aci´oelm´eleti fels˝o korl´at, azaz van olyan pozit´ıv c konstans, hogy n rekord rendez´esekor legrosszabb esetben legal´abb c· n·log2n ¨osszehasonl´ıt´asra van sz¨uks´eg. Az al´abbiakban k´et kulcsmanipul´aci´os rendez´esi algoritmust tekint¨unk ´at, amelyek nem ¨osszehasonl´ıt´as-alap´uak l´ev´en ak´arc·n·log2n-n´el l´enyegesen kevesebb l´ep´es ut´an is v´egezhetnek.

L´adarendez´es (binsort)

L´etezik az ¨osszehasonl´ıt´as-alap´u rendez´esek l´ep´essz´am´ara kapott als´o becsl´esn´el kevesebb l´ep´est haszn´al´o rendez´esi algoritmus, de persze csak olyan, amelyik nem ¨osszehasonl´ıt´ as-alap´u. Ha p´eld´aul tudjuk, hogy az a1, a2, . . . , an sz´amok mindegyike 1 ´es m k¨oz¨otti eg´esz, ´esm kisebb (de legal´abbis nem sokkal nagyobb) n-n´el, akkor hasznos lehet az ´un.

l´adarendez´es. Itt k´esz´ıt¨unk egy m m´eret˝u T t¨omb¨ot, melynek minden cell´aja egy lista (ezeket nevezik l´ad´aknak). Sorra elolvassuk az a1,a2, . . . elemeket. Haai =j-t olvasunk,

akkor aT t¨ombj-dik cell´aj´aban ´all´o lista v´eg´ere fel´ırjuk azi´ert´eket (azazi-t betessz¨uk a j-dik l´ad´aba). Teh´at n l´ep´es ut´an kit¨oltj¨uk a T t¨omb¨ot. Ezut´an sorban v´egigolvassuk a t¨omb cell´ain ´all´o list´akat, ´es kit¨olt¨unk egynm´eret˝uAt¨omb¨ot, mely n¨ovekv˝o sorrendben fogja tartalmazni az ai elemeket. Nevezetesen, ha egy ¨ures l´ad´at tal´alunk, akkor a k¨ovetkez˝o l´ad´ahoz l´ep¨unk. Ha egy nem¨ures l´ad´at tal´alunk, akkor v´egigolvassuk a l´ad´ahoz tartoz´o lista elemeit, ´es az ezeknek az indexeknek megfelel˝o ai-ket sorban be´ırjuk az A t¨omb soron k¨ovetkez˝o cell´aiba. Ha ki¨ur¨ul egy l´ada, akkor a T t¨omb soron k¨ovetkez˝o cell´aj´an tal´alhat´o l´ad´at kezdj¨uk olvasni. A l´adarendez´es l´ep´essz´ama fel¨ulr˝ol becs¨ulhet˝o n+m konstansszoros´aval.

Radix rendez´es

Van olyan eset is, melyben a l´adarendez´es nem kifizet˝od˝o, de m´egis c´elt ´erhet¨unk egy (nlog2n) konstansszoros´an´al jelent˝osen kevesebb l´ep´est haszn´al´o algoritmussal. Ha az a1, a2, . . . , an sz´amok eg´eszek, mindegyik s alap´u sz´amrendszerben van fel´ırva, ´es mind-egyik ai legfeljebb k jegy˝u, akkor alkalmazhat´o a radix rendez´es. El˝osz¨or l´adarendez´ es-sel rendezz¨uk az ai-ket az utols´o jegy¨uk szerint. Ez´altal helyesen lesznek rendezve az a11, a12, a13, . . . sz´amok, aholaji-t ´ugy kapjuk, hogy ai utols´o j jegy´et tekintj¨uk az s alap´u fel´ır´asban. Ezt k¨ovet˝oen l´adarendez´essel rendezz¨uk az im´ent rendezett t¨omb¨ot az ai-k utols´oel˝otti jegye szerint. Ekkor helyesen lesznek rendezve aza21, a22, a23, . . .sz´amok. ´ Alta-l´aban, a (j−1)-dik l´adarendez´es ut´an kapott sz´amok aj−11 , aj−12 , aj−13 , . . .szerint helyesen vannak m´ar rendezve. A j-dik f´azisban l´adarendezz¨uk az adott sorrendet a h´atulr´ol j-dik jegyeik szerint. Ez´altal azaj1, aj2, aj3, . . . ´ugy lesznek rendezve, hogy ha valamelyiknek h´atulr´ol a j-dik jegye kisebb egy m´asikn´al, akkor a j-dik f´azisban t¨ort´en˝o l´adarendez´es szerint megel˝ozi a m´asikat, ha pedig egyenl˝ok ezen a helyi´ert´eken a jegyek, akkor a ko-r´abbi rendez´esek szeinti sorrendben ´allnak a rekordok. (Ez´ert volt sz¨uks´eg arra, hogy a l´adarendez´es konzervat´ıv legyen, azaz ha k´et elem a l´adarendez´es szerint azonos, akkor a rendez´est k¨ovet˝o sorrendj¨uk azonos legyen a kiindul´asi sorrenddel.) Ezek szerint a j-dik f´azis ut´an helyesen lesznek rendezve azaj1, aj2, aj3, . . . sz´amok, vagyik ak-dik f´azis ut´an az ai sz´amok helyes rendez´es´et kapjuk. Minden l´adarendez´es legfeljebb konstansszor (n+s) l´ep´est ig´enyel, teh´at a radix rendez´es l´ep´essz´ama k(n+s) konstansszorosa lesz. Ism´ e-telten hangs´ulyozzuk, hogy radix rendez´es helyes m˝uk¨od´es´ehez elengedhetetlen, hogy a k¨ozben alkalmazott l´adarendez´esek konzervat´ıvak legyenek, vagyis azok sor´an az egyes l´ad´akban elhelyezett elemeket mindig a l´ad´aban tal´alhat´o lista v´eg´ere (´es ne az elej´ere)

´ırjuk. (Mag´ahoz a l´adarendez´eshez erre nem volna sz¨uks´eg.) Ezzel ´erj¨uk el ugyanis, hogy ha k´et elemet m´ar kor´abban rendezt¨unk egym´ashoz k´epest, ´es a soron k¨ovetkez˝o l´ adaren-dez´esben nem kell v´altoztatni ezen, akkor a kor´abbi sorrend tov´abbra is megmaradjon.