Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
O rd en aç ão ∗ Ú lti m a al te ra çã o: 31 de A go st o de 20 10 ∗ Tr an sp ar ên ci as el ab or ad as po rC ha rl es O rn el as A lm ei da ,I sr ae lG ue rr a e N iv io Z iv ia ni Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão 1 C on te úd o do C ap ítu lo 4. 1 O rd en aç ão In te rn a 4. 1. 1 S el eç ão 4. 1. 2 In se rç ão 4. 1. 3 S he lls or t 4. 1. 4 Q ui ck so rt 4. 1. 5 H ea ps or t ∗ Fi la s de P rio rid ad es ∗ H ea ps 4. 1. 6 O rd en aç ão P ar ci al ∗ S el eç ão P ar ci al ∗ In se rç ão P ar ci al ∗ H ea ps or tP ar ci al ∗ Q ui ck so rt P ar ci al 4. 1. 7 O rd en aç ão em Te m po Li ne ar ∗ O rd en aç ão po rC on ta ge m ∗ R ad ix so rt pa ra In te iro s ∗ R ad ix so rt pa ra C ad ei as de C ar ac te re s 4. 2 O rd en aç ão E xt er na 4. 2. 1 In te rc al aç ão B al an ce ad a de V ár io s C am in ho s 4. 2. 2 Im pl em en ta çã o po r m ei o de S el eç ão po rS ub st itu iç ão 4. 2. 3 C on si de ra çõ es P rá tic as 4. 2. 4 In te rc al aç ão Po lif ás ic a 4. 2. 5 Q ui ck so rt E xt er no Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão 2 In tr od uç ão -C on ce ito s B ás ic os • O rd en ar : pr oc es so de re ar ra nj ar um co nj un to de ob je to s em um a or de m as ce nd en te ou de sc en de nt e. • A or de na çã o vi sa fa ci lit ar a re cu pe ra çã o po st er io rd e ite ns do co nj un to or de na do . – D ifi cu ld ad e de se ut ili za ru m ca tá lo go te le fô ni co se os no m es da s pe ss oa s nã o es tiv es se m lis ta do s em or de m al fa bé tic a. • N ot aç ão ut ili za da no s al go rit m os : – O s al go rit m os tra ba lh am so br e os re gi st ro s de um ar qu iv o. – C ad a re gi st ro po ss ui um a ch av e ut ili za da pa ra co nt ro la ra or de na çã o. – Po de m ex is tir ou tro s co m po ne nt es em um re gi st ro . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão 3 In tr od uç ão -C on ce ito s B ás ic os • E st ru tu ra de um re gi st ro : ty pe de f lo ng Ti po C ha ve ; ty pe de f st ru ct Ti po Ite m { Ti po C ha ve C ha ve ; /∗ ou tr os co m po ne nt es ∗ / } Ti po Ite m ; • Q ua lq ue rt ip o de ch av e so br e o qu al ex is ta um a re gr a de or de na çã o be m -d efi ni da po de se ru til iz ad o. • U m m ét od o de or de na çã o é es tá ve ls e a or de m re la tiv a do s ite ns co m ch av es ig ua is nã o se al te ra du ra nt e a or de na çã o. • A lg un s do s m ét od os de or de na çã o m ai s efi ci en te s nã o sã o es tá ve is . • A es ta bi lid ad e po de se rf or ça da qu an do o m ét od o é nã o- es tá ve l. • S ed ge w ic k (1 98 8) su ge re ag re ga ru m pe qu en o ín di ce a ca da ch av e an te s de or de na r, ou en tã o au m en ta ra ch av e de al gu m a ou tra fo rm a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão 4 In tr od uç ão -C on ce ito s B ás ic os • C la ss ifi ca çã o do s m ét od os de or de na çã o: – In te rn a: ar qu iv o a se ro rd en ad o ca be to do na m em ór ia pr in ci pa l. – E xt er na : ar qu iv o a se ro rd en ad o nã o ca be na m em ór ia pr in ci pa l. • D ife re nç as en tre os m ét od os : – E m um m ét od o de or de na çã o in te rn a, qu al qu er re gi st ro po de se r im ed ia ta m en te ac es sa do . – E m um m ét od o de or de na çã o ex te rn a, os re gi st ro s sã o ac es sa do s se qü en ci al m en te ou em gr an de s bl oc os . • A m ai or ia do s m ét od os de or de na çã o é ba se ad a em co m pa ra çõ es da s ch av es . • E xi st em m ét od os de or de na çã o qu e ut ili za m o pr in cí pi o da di st ri bu iç ão . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão 5 In tr od uç ão -C on ce ito s B ás ic os • E xe m pl o de or de na çã o po rd is tr ib ui çã o: co ns id er e o pr ob le m a de or de na ru m ba ra lh o co m 52 ca rt as na or de m : A < 2 < 3 < ·· · < 10 < J < Q < K e ♣ < ♦ < ♥ < ♠ . • A lg or itm o: 1. D is tr ib ui ra s ca rt as em tre ze m on te s: as es ,d oi s, trê s, .. ., re is . 2. C ol et e os m on te s na or de m es pe ci fic ad a. 3. D is tr ib ua no va m en te as ca rt as em qu at ro m on te s: pa us ,o ur os , co pa s e es pa da s. 4. C ol et e os m on te s na or de m es pe ci fic ad a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão 6 In tr od uç ão -C on ce ito s B ás ic os • M ét od os co m o o ilu st ra do sã o ta m bé m co nh ec id os co m o or de na çã o di gi ta l, ra di xs or to u bu ck et so rt . • O m ét od o nã o ut ili za co m pa ra çã o en tre ch av es . • U m a da s di fic ul da de s de im pl em en ta re st e m ét od o es tá re la ci on ad a co m o pr ob le m a de lid ar co m ca da m on te . • S e pa ra ca da m on te nó s re se rv ar m os um a ár ea ,e nt ão a de m an da po r m em ór ia ex tra po de to rn ar -s e pr oi bi tiv a. • O cu st o pa ra or de na ru m ar qu iv o co m n el em en to s é da or de m de O (n ). Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1 7 O rd en aç ão In te rn a • N a es co lh a de um al go rit m o de or de na çã o in te rn a de ve se r co ns id er ad o o te m po ga st o pe la or de na çã o. • S en do n o nú m er o re gi st ro s no ar qu iv o, as m ed id as de co m pl ex id ad e re le va nt es sã o: – N úm er o de co m pa ra çõ es C (n ) en tre ch av es . – N úm er o de m ov im en ta çõ es M (n ) de ite ns do ar qu iv o. • O us o ec on ôm ic o da m em ór ia di sp on ív el é um re qu is ito pr im or di al na or de na çã o in te rn a. • M ét od os de or de na çã o in si tu sã o os pr ef er id os . • M ét od os qu e ut ili za m lis ta s en ca de ad as nã o sã o m ui to ut ili za do s. • M ét od os qu e fa ze m có pi as do s ite ns a se re m or de na do s po ss ue m m en or im po rt ân ci a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1 8 O rd en aç ão In te rn a • C la ss ifi ca çã o do s m ét od os de or de na çã o in te rn a: – M ét od os si m pl es : ∗ A de qu ad os pa ra pe qu en os ar qu iv os . ∗ R eq ue re m O (n 2 ) co m pa ra çõ es . ∗ P ro du ze m pr og ra m as pe qu en os . – M ét od os efi ci en te s: ∗ A de qu ad os pa ra ar qu iv os m ai or es . ∗ R eq ue re m O (n lo g n ) co m pa ra çõ es . ∗ U sa m m en os co m pa ra çõ es . ∗ A s co m pa ra çõ es sã o m ai s co m pl ex as no s de ta lh es . ∗ M ét od os si m pl es sã o m ai s efi ci en te s pa ra pe qu en os ar qu iv os . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1 9 O rd en aç ão In te rn a • Ti po s de da do s e va riá ve is ut ili za do s no s al go rit m os de or de na çã o in te rn a: ty pe de f in t T ip oI nd ic e ; ty pe de f Ti po Ite m Ti po V et or [M A X TA M + 1 ]; /∗ M A X TA M + 1 po r ca us a da se nt in el a em In se rc ao ∗ / Ti po V et or A ; • O ín di ce do ve to rv ai de 0 at é M a x T a m ,d ev id o às ch av es se nt in el as . • O ve to ra se ro rd en ad o co nt ém ch av es na s po si çõ es de 1 at é n . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 1 10 O rd en aç ão po r S el eç ão (1 ) • U m do s al go rit m os m ai s si m pl es de or de na çã o. • A lg or itm o: – S el ec io ne o m en or ite m do ve to r. – Tr oq ue -o co m o ite m da pr im ei ra po si çã o do ve to r. – R ep ita es sa s du as op er aç õe s co m os n − 1 ite ns re st an te s, de po is co m os n − 2 ite ns ,a té qu e re st e ap en as um el em en to . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 1 11 O rd en aç ão po r S el eç ão (2 ) • O m ét od o é ilu st ra do ab ai xo : 1 2 3 4 5 6 C ha ve s in ic ia is : O R D E N A i= 1 A R D E N O i= 2 A D R E N O i= 3 A D E R N O i= 4 A D E N R O i= 5 A D E N O R • A s ch av es em ne gr ito so fre ra m um a tro ca en tre si . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 1 12 O rd en aç ão po r S el eç ão vo id S el ec ao (T ip oI te m ∗ A , T ip oI nd ic e n) { T ip oI nd ic e i, j, M in ; Ti po Ite m x; fo r (i = 1 ; i < = n − 1; i+ +) { M in = i; fo r (j = i + 1 ; j < = n ; j+ +) if (A [j ]. C ha ve < A [M in ]. C ha ve ) M in = j; x = A [M in ]; A [M in ] = A [i ]; A [i ] = x; } } • C om pa ra çõ es en tre ch av es e m ov im en ta çõ es de re gi st ro s: C (n ) = n 2 2 − n 2 M (n ) = 3( n − 1) • A at rib ui çã o M in := j é ex ec ut ad a em m éd ia n lo g n ve ze s, K nu th (1 97 3) . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 1 13 O rd en aç ão po r S el eç ão Va nt ag en s: • C us to lin ar pa ra o nú m er o de m ov im en to s de re gi st ro s. • É o al go rit m o a se ru til iz ad o pa ra ar qu iv os co m re gi st ro s m ui to gr an de s. • É m ui to in te re ss an te pa ra ar qu iv os pe qu en os . D es va nt ag en s: • O fa to de o ar qu iv o já es ta ro rd en ad o nã o aj ud a em na da ,p oi s o cu st o co nt in ua qu ad rá tic o. • O al go rit m o nã o é es tá ve l. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 2 14 O rd en aç ão po r In se rç ão • M ét od o pr ef er id o do s jo ga do re s de ca rt as . • A lg or itm o: – E m ca da pa ss o a pa rt ir de i= 2 fa ça : ∗ S el ec io ne o i- és im o ite m da se qü ên ci a fo nt e. ∗ C ol oq ue -o no lu ga ra pr op ria do na se qü ên ci a de st in o de ac or do co m o cr ité rio de or de na çã o. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 2 15 O rd en aç ão po r In se rç ão • O m ét od o é ilu st ra do ab ai xo : 1 2 3 4 5 6 C ha ve s in ic ia is : O R D E N A i= 2 O R D E N A i= 3 D O R E N A i= 4 D E O R N A i= 5 D E N O R A i= 6 A D E N O R • A s ch av es em ne gr ito re pr es en ta m a se qü ên ci a de st in o. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 2 16 O rd en aç ão po r In se rç ão vo id In se rc ao (T ip oI te m ∗ A , T ip oI nd ic e n) { T ip oI nd ic e i, j; Ti po Ite m x; fo r (i = 2 ; i < = n ; i+ +) { x = A [i ]; j = i − 1; A [0 ] = x ; /∗ se nt in el a ∗ / w hi le (x .C ha ve < A [j ]. C ha ve ) { A [j + 1] = A [j ]; j− − ; } A [j + 1] = x; } } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 2 17 O rd en aç ão po r In se rç ão C on si de ra çõ es so br e o al go rit m o: • O pr oc es so de or de na çã o po de se rt er m in ad o pe la s co nd iç õe s: – U m ite m co m ch av e m en or qu e o ite m em co ns id er aç ão é en co nt ra do . – O fin al da se qü ên ci a de st in o é at in gi do à es qu er da . • S ol uç ão : – U til iz ar um re gi st ro se nt in el a na po si çã o ze ro do ve to r. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 2 18 O rd en aç ão po r In se rç ão • S ej a C (n ) a fu nç ão qu e co nt a o nú m er o de co m pa ra çõ es . • N o an el m ai s in te rn o, na i- és im a ite ra çã o, o va lo rd e C i é: M el h or ca so : C i( n ) = 1 P io r ca so : C i( n ) = i C as o m e´d io : C i( n ) = 1 i (1 + 2 + ·· ·+ i) = i+ 1 2 • A ss um in do qu e to da s as pe rm ut aç õe s de n sã o ig ua lm en te pr ov áv ei s no ca so m éd io ,t em os : M el h or ca so : C (n ) = (1 + 1 + ·· ·+ 1) = n − 1 P io r ca so : C (n ) = (2 + 3 + ·· ·+ n ) = n 2 2 + n 2 − 1 C as o m e´d io : C (n ) = 1 2 (3 + 4 + ·· ·+ n + 1) = n 2 4 + 3 n 4 − 1 Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 2 19 O rd en aç ão po r In se rç ão • S ej a M (n ) a fu nç ão qu e co nt a o nú m er o de m ov im en ta çõ es de re gi st ro s. • O nú m er o de m ov im en ta çõ es na i- és im a ite ra çã o é: M i( n ) = C i( n ) − 1 + 3 = C i( n ) + 2 • Lo go ,o nú m er o de m ov im en to s é: M el h or ca so : M (n ) = (3 + 3 + ·· ·+ 3) = 3( n − 1) P io r ca so : M (n ) = (4 + 5 + ·· ·+ n + 2) = n 2 2 + 5 n 2 − 3 C as o m e´d io : M (n ) = 1 2 (5 + 6 + ·· ·+ n + 3) = n 2 4 + 1 1 n 4 − 3 Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 2 20 O rd en aç ão po r In se rç ão • O nú m er o m ín im o de co m pa ra çõ es e m ov im en to s oc or re qu an do os ite ns es tã o or ig in al m en te em or de m . • O nú m er o m áx im o oc or re qu an do os ite ns es tã o or ig in al m en te na or de m re ve rs a. • É o m ét od o a se ru til iz ad o qu an do o ar qu iv o es tá “q ua se ”o rd en ad o. • É um bo m m ét od o qu an do se de se ja ad ic io na ru ns po uc os ite ns a um ar qu iv o or de na do ,p oi s o cu st o é lin ea r. • O al go rit m o de or de na çã o po ri ns er çã o é es tá ve l. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 3 21 S he lls or t • P ro po st o po rS he ll em 19 59 . • É um a ex te ns ão do al go rit m o de or de na çã o po ri ns er çã o. • P ro bl em a co m o al go rit m o de or de na çã o po ri ns er çã o: – Tr oc a ite ns ad ja ce nt es pa ra de te rm in ar o po nt o de in se rç ão . – S ão ef et ua da s n − 1 co m pa ra çõ es e m ov im en ta çõ es qu an do o m en or ite m es tá na po si çã o m ai s à di re ita no ve to r. • O m ét od o de S he ll co nt or na es te pr ob le m a pe rm iti nd o tro ca s de re gi st ro s di st an te s um do ou tro . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 3 22 S he lls or t • O s ite ns se pa ra do s de h po si çõ es sã o re ar ra nj ad os . • To do h -é si m o ite m le va a um a se qü ên ci a or de na da . • Ta ls eq üê nc ia é di ta es ta rh -o rd en ad a. • E xe m pl o de ut ili za çã o: 1 2 3 4 5 6 C ha ve s in ic ia is : O R D E N A h = 4 N A D E O R h = 2 D A N E O R h = 1 A D E N O R • Q ua nd o h = 1 S he lls or tc or re sp on de ao al go rit m o de in se rç ão . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 3 23 S he lls or t • C om o es co lh er o va lo rd e h : – S eq üê nc ia pa ra h : h( s) = 3h (s − 1) + 1, p a ra s > 1 h (s ) = 1, p a ra s = 1. – K nu th (1 97 3, p. 95 )m os tro u ex pe rim en ta lm en te qu e es ta se qü ên ci a é di fíc il de se rb at id a po rm ai s de 20 % em efi ci ên ci a. – A se qü ên ci a pa ra h co rr es po nd e a 1, 4, 13 ,4 0, 12 1, 36 4, 1. 09 3, 3. 28 0, .. . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 3 24 S he lls or t vo id S he lls or t( Ti po Ite m ∗ A , T ip oI nd ic e n) { in t i, j; in t h = 1 ; Ti po Ite m x; do h = h ∗ 3 + 1 ; w hi le (h < n ); do { h /= 3 ; fo r (i = h + 1 ; i < = n ; i+ +) { x = A [i ]; j = i; w hi le (A [j − h ]. C ha ve > x. C ha ve ) { A [j ] = A [j − h ]; j − = h ; if (j < = h ) go to L9 99 ; } L9 99 : A [j ] = x; } } w hi le (h != 1 ); } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 3 25 S he lls or t • A im pl em en ta çã o do S he lls or tn ão ut ili za re gi st ro s se nt in el as . • S er ia m ne ce ss ár io s h re gi st ro s se nt in el as ,u m a pa ra ca da h -o rd en aç ão . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 3 26 S he lls or t: A ná lis e • A ra zã o da efi ci ên ci a do al go rit m o ai nd a nã o é co nh ec id a. • N in gu ém ai nd a fo ic ap az de an al is ar o al go rit m o. • A su a an ál is e co nt ém al gu ns pr ob le m as m at em át ic os m ui to di fíc ei s. • A co m eç ar pe la pr óp ria se qü ên ci a de in cr em en to s. • O qu e se sa be é qu e ca da in cr em en to nã o de ve se rm úl tip lo do an te rio r. • C on je ct ur as re fe re nt e ao nú m er o de co m pa ra çõ es pa ra a se qü ên ci a de K nu th : C on je tu ra 1 : C (n ) = O (n 1 ,2 5 ) C on je tu ra 2 : C (n ) = O (n (l n n )2 ) Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 3 27 S he lls or t • Va nt ag en s: – S he lls or té um a ót im a op çã o pa ra ar qu iv os de ta m an ho m od er ad o. – S ua im pl em en ta çã o é si m pl es e re qu er um a qu an tid ad e de có di go pe qu en a. • D es va nt ag en s: – O te m po de ex ec uç ão do al go rit m o é se ns ív el à or de m in ic ia ld o ar qu iv o. – O m ét od o nã o é es tá ve l, Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 28 Q ui ck so rt • P ro po st o po rH oa re em 19 60 e pu bl ic ca do em 19 62 . • É o al go rit m o de or de na çã o in te rn a m ai s rá pi do qu e se co nh ec e pa ra um a am pl a va rie da de de si tu aç õe s. • P ro va ve lm en te é o m ai s ut ili za do . • A id éi a bá si ca é di vi di ro pr ob le m a de or de na ru m co nj un to co m n ite ns em do is pr ob le m as m en or es . • O s pr ob le m as m en or es sã o or de na do s in de pe nd en te m en te . • O s re su lta do s sã o co m bi na do s pa ra pr od uz ir a so lu çã o fin al . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 29 Q ui ck so rt • A pa rt e m ai s de lic ad a do m ét od o é o pr oc es so de pa rt iç ão . • O ve to rA [E sq .. D ir ] é re ar ra nj ad o po rm ei o da es co lh a ar bi trá ria de um pi vô x . • O ve to rA é pa rt ic io na do em du as pa rt es : – A pa rt e es qu er da co m ch av es m en or es ou ig ua is a x . – A pa rt e di re ita co m ch av es m ai or es ou ig ua is a x . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 30 Q ui ck so rt • A lg or itm o pa ra o pa rt ic io na m en to : 1. E sc ol ha ar bi tra ria m en te um pi vô x . 2. Pe rc or ra o ve to ra pa rt ir da es qu er da at é qu e A [i ] ≥ x . 3. Pe rc or ra o ve to ra pa rt ir da di re ita at é qu e A [j ] ≤ x . 4. Tr oq ue A [i ] co m A [j ]. 5. C on tin ue es te pr oc es so at é os ap on ta do re s i e j se cr uz ar em . • A o fin al ,o ve to rA [E sq .. D ir ] es tá pa rt ic io na do de ta lf or m a qu e: – O s ite ns em A [E sq ], A [E sq + 1] ,. .. ,A [j ] sã o m en or es ou ig ua is a x . – O s ite ns em A [i ], A [i + 1] ,. .. ,A [D ir ] sã o m ai or es ou ig ua is a x . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 31 Q ui ck so rt • Ilu st ra çã o do pr oc es so de pa rt iç ão : 1 2 3 4 5 6 O R D E N A A R D E N O A D R E N O • O pi vô x é es co lh id o co m o se nd o A [( i + j) d iv 2] . • C om o in ic ia lm en te i = 1 e j = 6, en tã o x = A [3 ] = D . • A o fin al do pr oc es so de pa rt iç ão i e j se cr uz am em i = 3 e j = 2. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 32 Q ui ck so rt P ro ce di m en to P ar tic ao : vo id P ar tic ao (T ip oI nd ic e Es q, T ip oI nd ic e D ir , T ip oI nd ic e ∗ i, T ip oI nd ic e ∗ j, Ti po Ite m ∗A ) { Ti po Ite m x , w ; ∗ i = Es q ; ∗ j = D ir ; x = A [( ∗ i + ∗ j) / 2 ]; /∗ ob te m o pi vo x ∗ / do { w hi le (x .C ha ve > A [∗ i] .C ha ve ) (∗ i) + + ; w hi le (x .C ha ve < A [∗ j] .C ha ve ) (∗ j)− − ; if (∗ i <= ∗ j) { w = A [∗ i] ; A [∗ i] = A [∗ j] ; A [∗ j] = w ; (∗ i) + + ; (∗ j)− − ; } } w hi le (∗ i <= ∗ j) ; } • O an el in te rn o do pr oc ed im en to P ar tic ao é ex tre m am en te si m pl es . • R az ão pe la qu al o al go rit m o Q ui ck so rt é tã o rá pi do . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 33 Q ui ck so rt P ro ce di m en to Q ui ck so rt : /∗ − − E nt ra aq ui o pr oc ed im en to P ar tic ao da tr an sp ar en ci a 32 − − ∗ / vo id O rd en a( T ip oI nd ic e Es q, T ip oI nd ic e D ir , Ti po Ite m ∗A ) { T ip oI nd ic e i, j; P ar tic ao (E sq , D ir , & i, & j, A ); if (E sq < j) O rd en a( Es q, j, A ); if (i < D ir ) O rd en a( i, D ir , A ); } vo id Q ui ck S or t( Ti po Ite m ∗ A , T ip oI nd ic e n) { O rd en a( 1 , n , A ); } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 34 Q ui ck so rt • E xe m pl o do es ta do do ve to re m ca da ch am ad a re cu rs iv a do pr oc ed im en to O rd en a: 1 2 3 4 5 6 C ha ve s in ic ia is : O R D E N A 1 A D R E N O 2 A D 3 E R N O 4 N R O 5 O R A D E N O R Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 35 Q ui ck so rt : A ná lis e • S ej a C (n ) a fu nç ão qu e co nt a o nú m er o de co m pa ra çõ es . • P io rc as o: C (n ) = O (n 2 ) • O pi or ca so oc or re qu an do ,s is te m at ic am en te ,o pi vô é es co lh id o co m o se nd o um do s ex tre m os de um ar qu iv o já or de na do . • Is to fa z co m qu e o pr oc ed im en to O rd en a se ja ch am ad o re cu rs iv am en te n ve ze s, el im in an do ap en as um ite m em ca da ch am ad a. • O pi or ca so po de se re vi ta do em pr eg an do pe qu en as m od ifi ca çõ es no al go rit m o. • P ar a is so ba st a es co lh er trê s ite ns qu ai sq ue rd o ve to re us ar a m ed ia na do s tr ês co m o pi vô . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 36 Q ui ck so rt : A ná lis e • M el ho rc as o: C (n ) = 2C (n /2 ) + n = n lo g n − n + 1 • E st a si tu aç ão oc or re qu an do ca da pa rt iç ão di vi de o ar qu iv o em du as pa rt es ig ua is . • C as o m éd io de ac or do co m S ed ge w ic k e Fl aj ol et (1 99 6, p. 17 ): C (n ) ≈ 1, 38 6n lo g n − 0, 84 6n , • Is so si gn ifi ca qu e em m éd ia o te m po de ex ec uç ão do Q ui ck so rt é O (n lo g n ). Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 4 37 Q ui ck so rt • Va nt ag en s: – É ex tre m am en te efi ci en te pa ra or de na ra rq ui vo s de da do s. – N ec es si ta de ap en as um a pe qu en a pi lh a co m o m em ór ia au xi lia r. – R eq ue rc er ca de n lo g n co m pa ra çõ es em m éd ia pa ra or de na rn ite ns . • D es va nt ag en s: – Te m um pi or ca so O (n 2 ) co m pa ra çõ es . – S ua im pl em en ta çã o é m ui to de lic ad a e di fíc il: ∗ U m pe qu en o en ga no po de le va ra ef ei to s in es pe ra do s pa ra al gu m as en tra da s de da do s. – O m ét od o nã o é es tá ve l. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 38 H ea ps or t • Po ss ui o m es m o pr in cí pi o de fu nc io na m en to da or de na çã o po r se le çã o. • A lg or itm o: 1. S el ec io ne o m en or ite m do ve to r. 2. Tr oq ue -o co m o ite m da pr im ei ra po si çã o do ve to r. 3. R ep ita es ta s op er aç õe s co m os n − 1 ite ns re st an te s, de po is co m os n − 2 ite ns ,e as si m su ce ss iv am en te . • O cu st o pa ra en co nt ra ro m en or (o u o m ai or )i te m en tre n ite ns é n − 1 co m pa ra çõ es . • Is so po de se rr ed uz id o ut ili za nd o um a fil a de pr io rid ad es . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 39 H ea ps or t Fi la s de P ri or id ad es • É um a es tr ut ur a de da do s on de a ch av e de ca da ite m re fle te su a ha bi lid ad e re la tiv a de ab an do na ro co nj un to de ite ns ra pi da m en te . • A pl ic aç õe s: – S O s us am fil as de pr io rid ad es ,n as qu ai s as ch av es re pr es en ta m o te m po em qu e ev en to s de ve m oc or re r. – M ét od os nu m ér ic os ite ra tiv os sã o ba se ad os na se le çã o re pe tid a de um ite m co m m ai or (m en or )v al or . – S is te m as de ge rê nc ia de m em ór ia us am a té cn ic a de su bs tit ui ra pá gi na m en os ut ili za da na m em ór ia pr in ci pa lp or um a no va pá gi na . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 40 H ea ps or t Fi la s de P ri or id ad es -T ip o A bs tr at o de D ad os • O pe ra çõ es : 1. C on st ró iu m a fil a de pr io rid ad es a pa rt ir de um co nj un to co m n ite ns . 2. In fo rm a qu al é o m ai or ite m do co nj un to . 3. R et ira o ite m co m m ai or ch av e. 4. In se re um no vo ite m . 5. A um en ta o va lo rd a ch av e do ite m i pa ra um no vo va lo rq ue é m ai or qu e o va lo ra tu al da ch av e. 6. S ub st itu io m ai or ite m po ru m no vo ite m ,a nã o se rq ue o no vo ite m se ja m ai or . 7. A lte ra a pr io rid ad e de um ite m . 8. R em ov e um ite m qu al qu er . 9. A ju nt a du as fil as de pr io rid ad es em um a ún ic a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 41 H ea ps or t Fi la s de P ri or id ad es -R ep re se nt aç ão • R ep re se nt aç ão at ra vé s de um a lis ta lin ea ro rd en ad a: – N es te ca so ,C on st ró il ev a te m po O (n lo g n ). – In se re é O (n ). – R et ira é O (1 ). – A ju nt a é O (n ). • R ep re se nt aç ão é at ra vé s de um a lis ta lin ea rn ão or de na da : – N es te ca so ,C on st ró it em cu st o lin ea r. – In se re é O (1 ). – R et ira é O (n ). – A ju nt a é O (1 ) pa ra ap on ta do re s e O (n ) pa ra ar ra nj os . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 42 H ea ps or t Fi la s de P ri or id ad es -R ep re se nt aç ão • A m el ho rr ep re se nt aç ão é at ra vé s de um a es tr ut ur as de da do s ch am ad a he ap : – N es te ca so ,C on st ró ié O (n ). – In se re ,R et ira ,S ub st itu ie A lte ra sã o O (l og n ). • O bs er va çã o: P ar a im pl em en ta ra op er aç ão A ju nt a de fo rm a efi ci en te e ai nd a pr es er va ru m cu st o lo ga rít m ic o pa ra as op er aç õe s In se re ,R et ira , S ub st itu ie A lte ra é ne ce ss ár io ut ili za re st ru tu ra s de da do s m ai s so fis tic ad as ,t ai s co m o ár vo re s bi no m ia is (V ui lle m in ,1 97 8) . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 43 H ea ps or t Fi la s de P ri or id ad es -A lg or itm os de O rd en aç ão • A s op er aç õe s da s fil as de pr io rid ad es po de m se ru til iz ad as pa ra im pl em en ta ra lg or itm os de or de na çã o. • B as ta ut ili za rr ep et id am en te a op er aç ão In se re pa ra co ns tr ui ra fil a de pr io rid ad es . • E m se gu id a, ut ili za rr ep et id am en te a op er aç ão R et ira pa ra re ce be ro s ite ns na or de m re ve rs a. • O us o de lis ta s lin ea re s nã o or de na da s co rr es po nd e ao m ét od o da se le çã o. • O us o de lis ta s lin ea re s or de na da s co rr es po nd e ao m ét od o da in se rç ão . • O us o de he ap s co rr es po nd e ao m ét od o H ea ps or t. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 44 H ea p • É um a se qü ên ci a de ite ns co m ch av es c[ 1] ,c [2 ], .. ., c[ n ], ta lq ue : c[ i] ≥ c[ 2i ], c[ i] ≥ c[ 2i + 1] , pa ra to do i = 1, 2, .. ., n /2 . • A de fin iç ão po de se rf ac ilm en te vi su al iz ad a em um a ár vo re bi ná ria co m pl et a: 1 2 3 7 5 6 4 E N R S O A D Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 45 H ea p • Á rv or e bi ná ri a co m pl et a: – O s nó s sã o nu m er ad os de 1 a n . – O pr im ei ro nó é ch am ad o ra iz . – O nó �k /2 � é o pa id o nó k ,p ar a 1 < k ≤ n . – O s nó s 2k e 2k + 1 sã o os fil ho s à es qu er da e à di re ita do nó k ,p ar a 1 ≤ k ≤ �k /2 �. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 46 H ea p • A s ch av es na ár vo re sa tis fa ze m a co nd iç ão do he ap . • A ch av e em ca da nó é m ai or do qu e as ch av es em se us fil ho s. • A ch av e no nó ra iz é a m ai or ch av e do co nj un to . • U m a ár vo re bi ná ria co m pl et a po de se rr ep re se nt ad a po ru m ar ra y: 1 2 3 4 5 6 7 S R O E N A D • A re pr es en ta çã o é ex tre m am en te co m pa ct a. • Pe rm ite ca m in ha rp el os nó s da ár vo re fa ci lm en te . • O s fil ho s de um nó i es tã o na s po si çõ es 2i e 2i + 1. • O pa id e um nó i es tá na po si çã o i d iv 2. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 47 H ea p • N a re pr es en ta çã o do he ap em um ar ra nj o, a m ai or ch av e es tá se m pr e na po si çã o 1 do ve to r. • O s al go rit m os pa ra im pl em en ta ra s op er aç õe s so br e o he ap op er am ao lo ng o de um do s ca m in ho s da ár vo re . • U m al go rit m o el eg an te pa ra co ns tr ui ro he ap fo ip ro po st o po rF lo yd em 19 64 . • O al go rit m o nã o ne ce ss ita de ne nh um a m em ór ia au xi lia r. • D ad o um ve to rA [1 ], A [2 ], .. ., A [n ]. • O s ite ns A [n /2 + 1] ,A [n /2 + 2] ,. .. ,A [n ] fo rm am um he ap : – N es te in te rv al o nã o ex is te m do is ín di ce s i e j ta is qu e j = 2i ou j = 2i + 1. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 48 H ea p 1 2 3 4 5 6 7 C ha ve s in ic ia is : O R D E N A S E sq = 3 O R S E N A D E sq = 2 O R S E N A D E sq = 1 S R O E N A D • O s ite ns de A [4 ] a A [7 ] fo rm am um he ap . • O he ap é es te nd id o pa ra a es qu er da (E sq = 3) ,e ng lo ba nd o o ite m A [3 ], pa id os ite ns A [6 ] e A [7 ]. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 49 H ea p • A co nd iç ão de he ap é vi ol ad a: – O he ap é re fe ito tro ca nd o os ite ns D e S . • O ite m R é in cl ui nd o no he ap (E sq = 2) ,o qu e nã o vi ol a a co nd iç ão de he ap . • O ite m O é in cl ui nd o no he ap (E sq = 1) . • A C on di çã o de he ap vi ol ad a: – O he ap é re fe ito tro ca nd o os ite ns O e S ,e nc er ra nd o o pr oc es so . O P ro gr am a qu e im pl em en ta a op er aç ão qu e in fo rm a o ite m co m m ai or ch av e: Ti po Ite m M ax (T ip oI te m ∗A ) { re tu rn (A [1 ]) ; } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 50 H ea p P ro gr am a pa ra re fa ze ra co nd iç ão de he ap : vo id R ef az (T ip oI nd ic e Es q, T ip oI nd ic e D ir , Ti po Ite m ∗A ) { T ip oI nd ic e i = Es q; in t j; Ti po Ite m x; j = i ∗ 2 ; x = A [i ]; w hi le (j < = D ir ) { if (j < D ir ) { if (A [j ]. C ha ve < A [j + 1] .C ha ve ) j+ +; } if (x .C ha ve > = A [j ]. C ha ve ) go to L9 99 ; A [i ] = A [j ]; i = j; j = i ∗ 2 ; } L9 99 : A [i ] = x; } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 51 H ea p P ro gr am a pa ra co ns tr ui ro he ap : vo id C on st ro i( Ti po Ite m ∗ A , T ip oI nd ic e n) { T ip oI nd ic e Es q; Es q = n / 2 + 1 ; w hi le (E sq > 1) { Es q− − ; R ef az (E sq , n , A ); } } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 52 H ea p P ro gr am a qu e im pl em en ta a op er aç ão de re tir ar o ite m co m m ai or ch av e: Ti po Ite m R et ira M ax (T ip oI te m ∗ A , T ip oI nd ic e ∗ n) { Ti po Ite m M ax im o; if (∗ n < 1) p ri n tf (" E rr o : he ap va zi o \n ") ; el se { M ax im o = A [1 ]; A [1 ] = A [∗ n ]; (∗ n) − − ; R ef az (1 , ∗ n , A ); } re tu rn M ax im o; } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 53 H ea p P ro gr am a qu e im pl em en ta a op er aç ão de au m en ta ro va lo rd a ch av e do ite m i: vo id Au m en ta C ha ve (T ip oI nd ic e i, Ti po C ha ve C ha ve N ov a, Ti po Ite m ∗A ) { Ti po Ite m x; if (C ha ve N ov a < A [i ]. C ha ve ) { p ri n tf (" E rr o : C ha ve N ov a m en or qu e a ch av e at ua l\ n" ); re tu rn ; } A [i ]. C ha ve = C ha ve N ov a; w hi le (i > 1 & & A [i / 2 ]. C ha ve < A [i ]. C ha ve ) { x = A [i / 2 ]; A [i / 2 ] = A [i ]; A [i ] = x; i /= 2 ; } } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 54 H ea p • E xe m pl o da op er aç ão de au m en ta ro va lo rd a ch av e do ite m na po si çã o i: (c ) (a ) (b ) (d ) i i i i O E N S U D EE D A N E R S O R S O D U N U S R N O D R • O te m po de ex ec uç ão do pr oc ed im en to A um en ta C ha ve em um ite m do he ap é O (l og n ). Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 55 H ea p P ro gr am a qu e im pl em en ta a op er aç ão de in se rir um no vo ite m no he ap : vo id In se re (T ip oI te m ∗ x , Ti po Ite m ∗ A , T ip oI nd ic e ∗ n) {( ∗ n) + + ; A [∗ n] = ∗ x ; A [∗ n ]. C ha ve = IN T_ M IN ; Au m en ta C ha ve (∗ n , x− >C ha ve , A ); } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 56 H ea ps or t • A lg or itm o: 1. C on st ru ir o he ap . 2. Tr oq ue o ite m na po si çã o 1 do ve to r( ra iz do he ap )c om o ite m da po si çã o n . 3. U se o pr oc ed im en to R ef az pa ra re co ns tit ui ro he ap pa ra os ite ns A [1 ], A [2 ], .. ., A [n − 1] . 4. R ep ita os pa ss os 2 e 3 co m os n − 1 ite ns re st an te s, de po is co m os n − 2, at é qu e re st e ap en as um ite m . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 57 H ea ps or t • E xe m pl o de ap lic aç ão do H ea ps or t: 1 2 3 4 5 6 7 S R O E N A D R N O E D A S O N A E D R N E A D O E D A N D A E A D • O ca m in ho se gu id o pe lo pr oc ed im en to R ef az pa ra re co ns tit ui ra co nd iç ão do he ap es tá em ne gr ito . • Po re xe m pl o, ap ós a tro ca do s ite ns S e D na se gu nd a lin ha da Fi gu ra , o ite m D vo lta pa ra a po si çã o 5, ap ós pa ss ar pe la s po si çõ es 1 e 2. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 58 H ea ps or t P ro gr am a qu e m os tra a im pl em en ta çã o do H ea ps or t: vo id H ea ps or t( Ti po Ite m ∗ A , T ip oI nd ic e n) { T ip oI nd ic e Es q, D ir ; Ti po Ite m x; C on st ro i( A , n ); /∗ co ns tr oi o he ap ∗ / Es q = 1 ; D ir = n ; w hi le (D ir > 1) { /∗ or de na o ve to r ∗ / x = A [1 ]; A [1 ] = A [D ir ]; A [D ir ] = x ; D ir− − ; R ef az (E sq , D ir , A ); } } A ná lis e • O pr oc ed im en to R ef az ga st a ce rc a de lo g n op er a- çõ es ,n o pi or ca so . • Lo go ,H ea ps or tg as ta um te m po de ex ec uç ão pr op or ci on al a n lo g n ,n o pi or ca so . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 59 H ea ps or t • Va nt ag en s: – O co m po rt am en to do H ea ps or té se m pr e O (n lo g n ), qu al qu er qu e se ja a en tra da . • D es va nt ag en s: – O an el in te rn o do al go rit m o é ba st an te co m pl ex o se co m pa ra do co m o do Q ui ck so rt . – O H ea ps or tn ão é es tá ve l. • R ec om en da do : – P ar a ap lic aç õe s qu e nã o po de m to le ra re ve nt ua lm en te um ca so de sf av or áv el . – N ão é re co m en da do pa ra ar qu iv os co m po uc os re gi st ro s, po rc au sa do te m po ne ce ss ár io pa ra co ns tr ui ro he ap . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 60 C om pa ra çã o en tr e os M ét od os C om pl ex id ad e: C om pl ex id ad e In se rç ão O (n 2 ) S el eç ão O (n 2 ) S he lls or t O (n lo g n ) Q ui ck so rt O (n lo g n ) H ea ps or t O (n lo g n ) • A pe sa rd e nã o se co nh ec er an al iti ca m en te o co m po rt am en to do S he lls or t, el e é co ns id er ad o um m ét od o efi ci en te ). Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 61 C om pa ra çã o en tr e os M ét od os Te m po de ex ec uç ão : • O se rv aç ão : O m ét od o qu e le vo u m en os te m po re al pa ra ex ec ut ar re ce be u o va lo r1 e os ou tro s re ce be ra m va lo re s re la tiv os a el e. • R eg is tro s na or de m al ea tó ria : 5. 00 5. 00 0 10 .0 00 30 .0 00 In se rç ão 11 ,3 87 16 1 – S el eç ão 16 ,2 12 4 22 8 – S he lls or t 1, 2 1, 6 1, 7 2 Q ui ck so rt 1 1 1 1 H ea ps or t 1, 5 1, 6 1, 6 1, 6 Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 62 C om pa ra çã o en tr e os M ét od os • R eg is tro s na or de m as ce nd en te : 50 0 5. 00 0 10 .0 00 30 .0 00 In se rç ão 1 1 1 1 S el eç ão 12 8 1. 52 4 3. 06 6 – S he lls or t 3, 9 6, 8 7, 3 8, 1 Q ui ck so rt 4, 1 6, 3 6, 8 7, 1 H ea ps or t 12 ,2 20 ,8 22 ,4 24 ,6 Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 63 C om pa ra çã o en tr e os M ét od os Te m po de ex ec uç ão : • R eg is tro s na or de m de sc en de nt e: 50 0 5. 00 0 10 .0 00 30 .0 00 In se rç ão 40 ,3 30 5 57 5 – S el eç ão 29 ,3 22 1 41 7 – S he lls or t 1, 5 1, 5 1, 6 1, 6 Q ui ck so rt 1 1 1 1 H ea ps or t 2, 5 2, 7 2, 7 2, 9 Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 64 C om pa ra çã o en tr e os M ét od os O bs er va çõ es so br e os m ét od os : 1. S he lls or t, Q ui ck so rt e H ea ps or tt êm a m es m a or de m de gr an de za . 2. O Q ui ck so rt é o m ai s rá pi do pa ra to do s os ta m an ho s al ea tó rio s ex pe rim en ta do s. 3. A re la çã o H ea ps or t/Q ui ck so rt é co ns ta nt e pa ra to do s os ta m an ho s. 4. A re la çã o S he lls or t/Q ui ck so rt au m en ta se o nú m er o de el em en to s au m en ta . 5. P ar a ar qu iv os pe qu en os (5 00 el em en to s) ,o S he lls or té m ai s rá pi do qu e o H ea ps or t. 6. S e a en tra da au m en ta ,o H ea ps or té m ai s rá pi do qu e o S he lls or t. 7. O In se rç ão é o m ai s rá pi do se os el em en to s es tã o or de na do s. 8. O In se rç ão é o m ai s le nt o pa ra qu al qu er ta m an ho se os el em en to s es tã o em or de m de sc en de nt e. 9. E nt re os al go rit m os de cu st o O (n 2 ), o In se rç ão é m el ho rp ar a to do s os ta m an ho s al ea tó rio s ex pe rim en ta do s. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 65 C om pa ra çã o en tr e os M ét od os In flu ên ci a da or de m in ic ia ld os re gi st ro s: S he lls or t Q ui ck so rt H ea ps or t 5. 00 0 10 .0 00 30 .0 00 5. 00 0 10 .0 00 30 .0 00 5. 00 0 10 .0 00 30 .0 00 A sc 1 1 1 1 1 1 1, 1 1, 1 1, 1 D es 1, 5 1, 6 1, 5 1, 1 1, 1 1, 1 1 1 1 A le 2, 9 3, 1 3, 7 1, 9 2, 0 2, 0 1, 1 1 1 1. S he lls or té ba st an te se ns ív el à or de na çã o as ce nd en te ou de sc en de nt e da en tra da . 2. E m ar qu iv os do m es m o ta m an ho ,o S he lls or te xe cu ta m ai s rá pi do pa ra ar qu iv os or de na do s. 3. Q ui ck so rt é se ns ív el à or de na çã o as ce nd en te ou de sc en de nt e da en tra da . 4. E m ar qu iv os do m es m o ta m an ho ,o Q ui ck so rt ex ec ut a m ai s rá pi do pa ra ar qu iv os or de na do s. 5. O Q ui ck so rt é o m ai s rá pi do pa ra qu al qu er ta m an ho pa ra ar qu iv os na or de m as ce nd en te . 6. O H ea ps or tp ra tic am en te nã o é se ns ív el à or de na çã o da en tra da . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 66 C om pa ra çã o en tr e os M ét od os M ét od o da In se rç ão : • É o m ai s in te re ss an te pa ra ar qu iv os co m m en os do qu e 20 el em en to s. • O m ét od o é es tá ve l. • Po ss ui co m po rt am en to m el ho rd o qu e o m ét od o da bo lh a (B ub bl es or t) qu e ta m bé m é es tá ve l. • S ua im pl em en ta çã o é tã o si m pl es qu an to as im pl em en ta çõ es do B ub bl es or te S el eç ão . • P ar a ar qu iv os já or de na do s, o m ét od o é O (n ). • O cu st o é lin ea rp ar a ad ic io na ra lg un s el em en to s a um ar qu iv o já or de na do . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 67 C om pa ra çã o en tr e os M ét od os M ét od o da S el eç ão : • É va nt aj os o qu an to ao nú m er o de m ov im en to s de re gi st ro s, qu e é O (n ). • D ev e se ru sa do pa ra ar qu iv os co m re gi st ro s m ui to gr an de s, de sd e qu e o ta m an ho do ar qu iv o nã o ex ce da 1. 00 0 el em en to s. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 68 C om pa ra çã o en tr e os M ét od os S he lls or t: • É o m ét od o a se re sc ol hi do pa ra a m ai or ia da s ap lic aç õe s po rs er m ui to efi ci en te pa ra ar qu iv os de ta m an ho m od er ad o. • M es m o pa ra ar qu iv os gr an de s, o m ét od o é ce rc a de ap en as du as ve ze s m ai s le nt o do qu e o Q ui ck so rt . • S ua im pl em en ta çã o é si m pl es e ge ra lm en te re su lta em um pr og ra m a pe qu en o. • N ão po ss ui um pi or ca so ru im e qu an do en co nt ra um ar qu iv o pa rc ia lm en te or de na do tra ba lh a m en os . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 69 C om pa ra çã o en tr e os M ét od os Q ui ck so rt : • É o al go rit m o m ai s efi ci en te qu e ex is te pa ra um a gr an de va rie da de de si tu aç õe s. • É um m ét od o ba st an te frá gi ln o se nt id o de qu e qu al qu er er ro de im pl em en ta çã o po de se rd ifí ci ld e se rd et ec ta do . • O al go rit m o é re cu rs iv o, o qu e de m an da um a pe qu en a qu an tid ad e de m em ór ia ad ic io na l. • S eu de se m pe nh o é da or de m de O (n 2 ) op er aç õe s no pi or ca so . • O pr in ci pa lc ui da do a se rt om ad o é co m re la çã o à es co lh a do pi vô . • A es co lh a do el em en to do m ei o do ar ra nj o m el ho ra m ui to o de se m pe nh o qu an do o ar qu iv o es tá to ta lo u pa rc ia lm en te or de na do . • O pi or ca so te m um a pr ob ab ili da de m ui to re m ot a de oc or re rq ua nd o os el em en to s fo re m al ea tó rio s. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 70 C om pa ra çã o en tr e os M ét od os Q ui ck so rt : • G er al m en te se us a a m ed ia na de um a am os tra de trê s el em en to s pa ra ev ita ro pi or ca so . • E st a so lu çã o m el ho ra o ca so m éd io lig ei ra m en te . • O ut ra im po rt an te m el ho ria pa ra o de se m pe nh o do Q ui ck so rt é ev ita r ch am ad as re cu rs iv as pa ra pe qu en os su ba rq ui vo s. • P ar a is to ,b as ta ch am ar um m ét od o de or de na çã o si m pl es no s ar qu iv os pe qu en os . • A m el ho ria no de se m pe nh o é si gn ifi ca tiv a, po de nd o ch eg ar a 20 % pa ra a m ai or ia da s ap lic aç õe s (S ed ge w ic k, 19 88 ). Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 71 C om pa ra çã o en tr e os M ét od os H ea ps or t: • É um m ét od o de or de na çã o el eg an te e efi ci en te . • A pe sa rd e se rc er ca de du as ve ze s m ai s le nt o do qu e o Q ui ck so rt ,n ão ne ce ss ita de ne nh um a m em ór ia ad ic io na l. • E xe cu ta se m pr e em te m po pr op or ci on al a n lo g n , • A pl ic aç õe s qu e nã o po de m to le ra re ve nt ua is va ria çõ es no te m po es pe ra do de ex ec uç ão de ve m us ar o H ea ps or t. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 5 72 C om pa ra çã o en tr e os M ét od os C on si de ra çõ es fin ai s: • P ar a re gi st ro s m ui to gr an de s é de se já ve lq ue o m ét od o de or de na çã o re al iz e ap en as n m ov im en to s do s re gi st ro s. • C om o us o de um a or de na çã o in di re ta é po ss ív el se co ns eg ui ri ss o. • S up on ha qu e o ar qu iv o A co nt en ha os se gu in te s re gi st ro s: A [1 ], A [2 ], .. ., A [n ]. • S ej a P um ar ra nj o P [1 ], P [2 ], .. ., P [n ] de ap on ta do re s. • O s re gi st ro s so m en te sã o ac es sa do s pa ra fin s de co m pa ra çõ es e to da m ov im en ta çã o é re al iz ad a so br e os ap on ta do re s. • A o fin al ,P [1 ] co nt ém o ín di ce do m en or el em en to de A ,P [2 ] o ín di ce do se gu nd o m en or e as si m su ce ss iv am en te . • E ss a es tra té gi a po de se ru til iz ad a pa ra qu al qu er do s m ét od os de or de na çã o in te rn a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 73 O rd en aç ão Pa rc ia l • C on si st e em ob te ro s k pr im ei ro s el em en to s de um ar ra nj o or de na do co m n el em en to s. • Q ua nd o k = 1, o pr ob le m a se re du z a en co nt ra ro m ín im o (o u o m áx im o) de um co nj un to de el em en to s. • Q ua nd o k = n ca ím os no pr ob le m a cl ás si co de or de na çã o. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 74 O rd en aç ão Pa rc ia l A pl ic aç õe s: • Fa ci lit ar a bu sc a de in fo rm aç ão na W eb co m as m áq ui na s de bu sc a: – É co m um um a co ns ul ta na W eb re to rn ar ce nt en as de m ilh ar es de do cu m en to s re la ci on ad os co m a co ns ul ta . – O us uá rio es tá in te re ss ad o ap en as no s k do cu m en to s m ai s re le va nt es . – E m ge ra lk é m en or do qu e 20 0 do cu m en to s. – N or m al m en te sã o co ns ul ta do s ap en as os de z pr im ei ro s. – A ss im ,s ão ne ce ss ár io s al go rit m os efi ci en te s de or de na çã o pa rc ia l. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 75 O rd en aç ão Pa rc ia l A lg or itm os co ns id er ad os : • S el eç ão pa rc ia l. • In se rç ão pa rc ia l. • H ea ps or tp ar ci al . • Q ui ck so rt pa rc ia l. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 76 S el eç ão Pa rc ia l • U m do s al go rit m os m ai s si m pl es . • P rin cí pi o de fu nc io na m en to : – S el ec io ne o m en or ite m do ve to r. – Tr oq ue -o co m o ite m qu e es tá na pr im ei ra po si çã o do ve to r. – R ep ita es ta s du as op er aç õe s co m os ite ns n − 1, n − 2 .. .n − k . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 77 S el eç ão Pa rc ia l vo id S el ec ao P ar ci al (T ip oV et or A , T ip oI nd ic e n , T ip oI nd ic e k) { T ip oI nd ic e i, j, M in ; Ti po Ite m x; fo r (i = 1 ; i < = k ; i+ +) { M in = i; fo r (j = i + 1 ; j < = n ; j+ +) if (A [j ]. C ha ve < A [M in ]. C ha ve ) M in = j; x = A [M in ]; A [M in ] = A [i ]; A [i ] = x; } } A ná lis e: • C om pa ra çõ es en tre ch a- ve s e m ov im en ta çõ es de re gi st ro s: C (n ) = k n − k 2 2 − k 2 M (n ) = 3k Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 78 S el eç ão Pa rc ia l • É m ui to si m pl es de se ro bt id o a pa rt ir da im pl em en ta çã o do al go rit m o de or de na çã o po rs el eç ão . • Po ss ui um co m po rt am en to es pe ta cu la rq ua nt o ao nú m er o de m ov im en to s de re gi st ro s: – Te m po de ex ec uç ão é lin ea rn o ta m an ho de k . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 79 In se rç ão Pa rc ia l • Po de se ro bt id o a pa rt ir do al go rit m o de or de na çã o po rI ns er çã o po r m ei o de um a m od ifi ca çã o si m pl es : – Te nd o si do or de na do s os pr im ei ro s k ite ns ,o ite m da k -é si m a po si çã o fu nc io na co m o um pi vô . – Q ua nd o um ite m en tre os re st an te s é m en or do qu e o pi vô ,e le é in se rid o na po si çã o co rr et a en tre os k ite ns de ac or do co m o al go rit m o or ig in al . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 80 In se rç ão Pa rc ia l vo id In se rc ao P ar ci al (T ip oV et or A , T ip oI nd ic e n , T ip oI nd ic e k) { /∗ − − Na o pr es er va o re st an te do ve to r− − ∗ / T ip oI nd ic e i, j; Ti po Ite m x; fo r (i = 2 ; i < = n ; i+ +) { x = A [i ]; if (i > k) j = k ; el se j = i − 1; A [0 ] = x ; /∗ se nt in el a ∗ / w hi le (x .C ha ve < A [j ]. C ha ve ) { A [j + 1] = A [j ]; j− − ; } A [j + 1] = x; } } • A m od ifi ca çã o re al iz ad a ve rifi ca o m om en to em qu e i se to rn a m ai or do qu e k e en tã o pa ss a a co ns id er ar o va lo r de j ig ua l a k a pa rt ir de st e po nt o. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 81 In se rç ão Pa rc ia l: P re se rv a R es ta nt e do Ve to r vo id In se rc ao P ar ci al 2 (T ip oV et or A , T ip oI nd ic e n , T ip oI nd ic e k) { /∗ − − P re se rv a o re st an te do ve to r− − ∗ / T ip oI nd ic e i, j; Ti po Ite m x; fo r (i = 2 ; i < = n ; i+ +) { x = A [i ]; if (i > k) { j = k ; if (x .C ha ve < A [k ]. C ha ve ) A [i ] = A [k ]; } el se j = i − 1; A [0 ] = x ; /∗ se nt in el a ∗ / w hi le (x .C ha ve < A [j ]. C ha ve ) { if (j < k ) {A [j + 1] = A [j ]; } j− − ; } if (j < k) A [j + 1] = x; } } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 82 In se rç ão Pa rc ia l: A ná lis e • N o an el m ai s in te rn o, na i- és im a ite ra çã o o va lo rd e C i é: M el h or ca so : C i( n ) = 1 P io r ca so : C i( n ) = i C as o m e´d io : C i( n ) = 1 i (1 + 2 + ·· · + i) = i+ 1 2 • A ss um in do qu e to da s as pe rm ut aç õe s de n sã o ig ua lm en te pr ov áv ei s, o nú m er o de co m pa ra çõ es é: M el h or ca so : C (n ) = (1 + 1 + ·· ·+ 1) = n − 1 P io r ca so : C (n ) = (2 + 3 + ·· ·+ k + (k + 1) (n − k )) = k n + n − k 2 2 − k 2 − 1 C as o m e´d io : C (n ) = 1 2 (3 + 4 + ·· ·+ k + 1 + (k + 1) (n − k )) = k n 2 + n 2 − k 2 4 + k 4 − 1 Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 83 In se rç ão Pa rc ia l: A ná lis e • O nú m er o de m ov im en ta çõ es na i- és im a ite ra çã o é: M i( n ) = C i( n ) − 1 + 3 = C i( n ) + 2 • Lo go ,o nú m er o de m ov im en to s é: M el h or ca so : M (n ) = (3 + 3 + ·· ·+ 3) = 3( n − 1) P io r ca so : M (n ) = (4 + 5 + ·· ·+ k + 2 + (k + 1) (n − k )) = k n + n − k 2 2 + 3 k 2 − 3 C as o m e´d io : M (n ) = 1 2 (5 + 6 + ·· ·+ k + 3 + (k + 1) (n − k )) = k n 2 + n 2 − k 2 4 + 5 k 4 − 2 • O nú m er o m ín im o de co m pa ra çõ es e m ov im en to s oc or re qu an do os ite ns es tã o or ig in al m en te em or de m . • O nú m er o m áx im o oc or re qu an do os ite ns es tã o or ig in al m en te na or de m re ve rs a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 84 H ea ps or tP ar ci al • U til iz a um tip o ab st ra to de da do s he ap pa ra in fo rm ar o m en or ite m do co nj un to . • N a pr im ei ra ite ra çã o, o m en or ite m qu e es tá em a[ 1] (r ai z do he ap )é tro ca do co m o ite m qu e es tá em A [n ]. • E m se gu id a o he ap é re fe ito . • N ov am en te ,o m en or es tá em A [1 ], tro qu e- o co m A [n -1 ]. • R ep ita as du as úl tim as op er aç õe s at é qu e o k -é si m o m en or se ja tro ca do co m A [n − k ]. • A o fin al ,o s k m en or es es tã o na s k úl tim as po si çõ es do ve to rA . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 85 H ea ps or tP ar ci al /∗ − − En tra m aq ui os pr oc ed im en to s R ef az e C on st ro i da s tr an sp ar en ci as 50 e 51 − − ∗ / /∗ − − C ol oc a m en or em A [n ], se gu nd o m en or em A [n − 1 ], .. ., − − ∗ / /∗ − − k− és im o em A [n − k ] − − ∗ / vo id H ea ps or tP ar ci al (T ip oI te m ∗ A , T ip oI nd ic e n , T ip oI nd ic e k) { T ip oI nd ic e Es q = 1 ; T ip oI nd ic e D ir ; Ti po Ite m x ; lo ng Au x = 0 ; C on st ro i( A , n ); /∗ co ns tr oi o he ap ∗ / D ir = n ; w hi le (A ux < k) { /∗ or de na o ve to r ∗ / x = A [1 ]; A [1 ] = A [n − Au x] ; A [n − Au x] = x; D ir − − ;A ux ++ ; R ef az (E sq , D ir , A ); } } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 86 H ea ps or tP ar ci al : A ná lis e: • O H ea ps or tP ar ci al de ve co ns tr ui ru m he ap a um cu st o O (n ). • O pr oc ed im en to R ef az te m cu st o O (l og n ). • O pr oc ed im en to H ea ps or tP ar ci al ch am a o pr oc ed im en to R ef az k ve ze s. • Lo go ,o al go rit m o ap re se nt a a co m pl ex id ad e: O (n + k lo g n ) = O (n ) se k ≤ n lo g n O (k lo g n ) se k > n lo g n Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 87 Q ui ck so rt Pa rc ia l • A ss im co m o o Q ui ck so rt ,o Q ui ck so rt P ar ci al é o al go rit m o de or de na çã o pa rc ia lm ai s rá pi do em vá ria s si tu aç õe s. • A al te ra çã o no al go rit m o pa ra qu e el e or de ne ap en as os k pr im ei ro s ite ns de nt re n ite ns é m ui to si m pl es . • B as ta ab an do na ra pa rt iç ão à di re ita to da ve z qu e a pa rt iç ão à es qu er da co nt iv er k ou m ai s ite ns . • A ss im ,a ún ic a al te ra çã o ne ce ss ár ia no Q ui ck so rt é ev ita ra ch am ad a re cu rs iv a O rd en a( i,D ir) . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 88 Q ui ck so rt Pa rc ia l 1 2 3 4 5 6 C ha ve s in ic ia is : O R D E N A 1 A D R E N O 2 A D 3 E R N O 4 N R O 5 O R A D E N O R • C on si de re k = 3 e D o pi vô pa ra ge ra ra s lin ha s 2 e 3. • A pa rt iç ão à es qu er da co nt ém do is ite ns e a pa rt iç ão à di re ita ,q ua tro ite ns . • A pa rt iç ão à es qu er da co nt ém m en os do qu e k ite ns . • Lo go ,a pa rt iç ão di re ita nã o po de se ra ba nd on ad a. • C on si de re E o pi vô na lin ha 3. • A pa rt iç ão à es qu er da co nt ém trê s ite ns e a pa rt iç ão à di re ita ta m bé m . • A ss im ,a pa rt iç ão à di re ita po de se ra ba nd on ad a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 89 Q ui ck so rt Pa rc ia l vo id O rd en a( Ti po V et or A , T ip oI nd ic e Es q, T ip oI nd ic e D ir , T ip oI nd ic e k) { T ip oI nd ic e i, j; P ar tic ao (A , Es q, D ir , & i, & j) ; if (j − Es q > = k − 1 ) { if (E sq < j) O rd en a( A , Es q, j, k ); re tu rn ; } if (E sq < j) O rd en a( A , Es q, j, k) ; if (i < D ir ) O rd en a( A , i, D ir , k) ; } vo id Q ui ck S or tP ar ci al (T ip oV et or A , T ip oI nd ic e n , T ip oI nd ic e k) { O rd en a( A , 1 , n , k ); } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 90 Q ui ck so rt Pa rc ia l: A ná lis e: • A an ál is e do Q ui ck so rt é di fíc il. • O co m po rt am en to é m ui to se ns ív el à es co lh a do pi vô . • Po de nd o ca ir no m el ho rc as o O (k lo g k ). • O u em al gu m va lo re nt re o m el ho rc as o e O (n lo g n ). Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 91 C om pa ra çã o en tr e os M ét od os de O rd en aç ão Pa rc ia l( 1) n ,k S el eç ão Q ui ck so rt In se rç ão In se rç ão 2 H ea ps or t n : 1 0 1 k : 1 0 0 1 2, 5 1 1, 2 1, 7 n : 1 0 1 k : 1 0 1 1, 2 2, 8 1 1, 1 2, 8 n : 1 0 2 k : 1 0 0 1 3 1, 1 1, 4 4, 5 n : 1 0 2 k : 1 0 1 1, 9 2, 4 1 1, 2 3 n : 1 0 2 k : 1 0 2 3 1, 7 1 1, 1 2, 3 n : 1 0 3 k : 1 0 0 1 3, 7 1, 4 1, 6 9, 1 n : 1 0 3 k : 1 0 1 4, 6 2, 9 1 1, 2 6, 4 n : 1 0 3 k : 1 0 2 11 ,2 1, 3 1 1, 4 1, 9 n : 1 0 3 k : 1 0 3 15 ,1 1 3, 9 4, 2 1, 6 n : 1 0 5 k : 1 0 0 1 2, 4 1, 1 1, 1 5, 3 n : 1 0 5 k : 1 0 1 5, 9 2, 2 1 1 4, 9 n : 1 0 5 k : 1 0 2 67 2, 1 1 1, 1 4, 8 n : 1 0 5 k : 1 0 3 30 4 1 1, 1 1, 3 2, 3 n : 1 0 5 k : 1 0 4 14 45 1 33 ,1 43 ,3 1, 7 n : 1 0 5 k : 1 0 5 ∞ 1 ∞ ∞ 1, 9 Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 92 C om pa ra çã o en tr e os M ét od os de O rd en aç ão Pa rc ia l( 2) n ,k S el eç ão Q ui ck so rt In se rç ão In se rç ão 2 H ea ps or t n : 1 0 6 k : 1 0 0 1 3, 9 1, 2 1, 3 8, 1 n : 1 0 6 k : 1 0 1 6, 6 2, 7 1 1 7, 3 n : 1 0 6 k : 1 0 2 83 ,1 3, 2 1 1, 1 6, 6 n : 1 0 6 k : 1 0 3 69 0 2, 2 1 1, 1 5, 7 n : 1 0 6 k : 1 0 4 ∞ 1 5 6, 4 1, 9 n : 1 0 6 k : 1 0 5 ∞ 1 ∞ ∞ 1, 7 n : 1 0 6 k : 1 0 6 ∞ 1 ∞ ∞ 1, 8 n : 1 0 7 k : 1 0 0 1 3, 4 1, 1 1, 1 7, 4 n : 1 0 7 k : 1 0 1 8, 6 2, 6 1 1, 1 6, 7 n : 1 0 7 k : 1 0 2 82 ,1 2, 6 1 1, 1 6, 8 n : 1 0 7 k : 1 0 3 ∞ 3, 1 1 1, 1 6, 6 n : 1 0 7 k : 1 0 4 ∞ 1, 1 1 1, 2 2, 6 n : 1 0 7 k : 1 0 5 ∞ 1 ∞ ∞ 2, 2 n : 1 0 7 k : 1 0 6 ∞ 1 ∞ ∞ 1, 2 n : 1 0 7 k : 1 0 7 ∞ 1 ∞ ∞ 1, 7 Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 6 93 C om pa ra çã o en tr e os M ét od os de O rd en aç ão Pa rc ia l 1. P ar a va lo re s de k at é 1. 00 0, o m ét od o da In se rç ão P ar ci al é im ba tív el . 2. O Q ui ck so rt P ar ci al nu nc a fic ar m ui to lo ng e da In se rç ão P ar ci al . 3. N a m ed id a em qu e o k cr es ce ,o Q ui ck so rt P ar ci al é a m el ho ro pç ão . 4. P ar a va lo re s gr an de s de k ,o m ét od o da In se rç ão P ar ci al se to rn a ru im . 5. U m m ét od o in di ca do pa ra qu al qu er si tu aç ão é o Q ui ck so rt P ar ci al . 6. O H ea ps or tP ar ci al te m co m po rt am en to pa re ci do co m o do Q ui ck so rt P ar ci al . 7. N o en ta no ,o H ea ps or tP ar ci al é m ai s le nt o. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 94 O rd en aç ão em Te m po Li ne ar • N os al go rit m os ap re se nt ad os a se gu ir nã o ex is te co m pa ra çã o en tre ch av es . • E le s tê m co m pl ex id ad e de te m po lin ea rn a pr át ic a. • N ec es si ta m m an te ru m a có pi a em m em ór ia do s ite ns a se re m or de na do s e um a ár ea te m po rá ria de tra ba lh o. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 95 O rd en aç ão po r C on ta ge m • E st e m ét od o as su m e qu e ca da ite m do ve to rA é um nú m er o in te iro en tre 0 e k . • O al go rit m o co nt a, pa ra ca da ite m x ,o nú m er o de ite ns an te s de x . • A se gu ir, ca da ite m é co lo ca do no ve to rd e sa íd a na su a po si çã o de fin iti va . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 96 O rd en aç ão po r C on ta ge m 1 1 1 3 48 47 6 5 4 3 02 01 11 A (b ) (c ) (a ) (d ) (e ) 2 3 4 5 6 7 8 0 1 2 3 4 C B C 1 2 3 4 5 6 7 8 1 0 2 3 4 4 4 0 3 0 1 1 2 3 0 1 2 4 1 4 2 5 6 7 1 0 2 3 4 2 5 5 6 8 1 1 4 12 3 4 5 6 7 8 1 0 2 3 4 2 3 5 6 7 B C 1 1 4 B C 2 3 4 5 6 7 8 0 2 3 41 2 5 6 8 B (f ) • A co nt ém oi to ch av es de in te iro s en tre 0 e 4. C ad a et ap a m os tra : – (a )o ve to rd e en tra da A e o ve to ra ux ili ar C co nt en do o nú m er o de ite ns ig ua is a i, 0 ≤ i ≤ 4; – (b )o ve to rC co nt en do o nú m er o de ite ns ≤ i, 0 ≤ i ≤ 4; – (c ), (d ), (e )o s ve to re s au xi lia re s B e C ap ós um a, du as e trê s ite ra çõ es ,c on si de ra nd o os ite ns em A da di re ita pa ra a es qu er da ; – (f) o ve to ra ux ili ar B or de na do . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 97 O rd en aç ão po r C on ta ge m vo id C on ta ge m (T ip oI te m ∗ A , T ip oI nd ic e n , in t k) { in t i; fo r (i = 0 ; i < = k ; i+ + )C [i ] = 0 ; fo r (i = 1 ; i < = n ; i+ + )C [A [i ]. C ha ve ] = C [A [i ]. C ha ve ] + 1 ; fo r (i = 1 ; i < = k ; i+ + )C [i ] = C [i ] + C [i − 1] ; fo r (i = n ; i > 0 ; i− − ) { B [C [A [i ]. C ha ve ]] = A [i ]; C [A [i ]. C ha ve ] = C [A [i ]. C ha ve ] − 1; } fo r (i = 1 ; i < = n ; i+ +) A [i ] = B [i ]; } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 98 O rd en aç ão po r C on ta ge m • O s ar ra nj os au xi lia re s B e C de ve m se rd ec la ra do s fo ra do pr oc ed im en to C on ta ge m pa ra ev ita rq ue se ja m cr ia do s a ca da ch am ad a do pr oc ed im en to . • N o qu ar to fo r, co m o po de m ha ve ri te ns ig ua is no ve to rA ,e nt ão o va lo r de C [A [j ]] é de cr em en ta do de 1 to da ve z qu e um ite m A [j ] é co lo ca do no ve to rB . Is so ga ra nt e qu e o pr óx im o ite m co m va lo ri gu al a A [j ], se ex is tir ,v ai se rc ol oc ad o na po si çã o im ed ia ta m en te an te s de A [j ] no ve to rB . • O úl tim o fo rc op ia pa ra A o ve to rB or de na do . E ss a có pi a po de se r ev ita da co lo ca nd o o ve to rB co m o pa râ m et ro de re to rn o no pr oc ed im en to C on ta ge m ,c om o m os tra do no E xe rc íc io 4. 24 . • A or de na çã o po rc on ta ge m é um m ét od o es tá ve l. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 99 O rd en aç ão po r C on ta ge m : A ná lis e • O pr im ei ro fo rt em cu st o O (k ). • O se gu nd o fo rt em cu st o O (n ). • O te rc ei ro fo rt em cu st o O (k ). • O qu ar to fo rt em cu st o O (n + k ). • N a pr át ic a o al go rit m o de ve se ru sa do qu an do k = O (n ), o qu e le va o al go rit m o a te rc us to O (n ). • D e ou tra m an ei ra ,a s co m pl ex id ad es de es pa ço e de te m po fic am pr oi bi tiv as . N a se çã o se gu in te va m os ap re se nt ar um al go rit m o pr át ic o e efi ci en te pa ra qu al qu er va lo rd e k . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 0 R ad ix so rt pa ra In te ir os • U til iz a o pr in cí pi o da di st rib ui çã o da s an tig as cl as si fic ad or as de ca rt õe s pe rfu ra do s. • O s ca rt õe s er am or ga ni za do s em 80 co lu na s e ca da co lu na pe rm iti a um a pe rfu ra çã o em 1 de 12 lu ga re s. • P ar a nú m er os in te iro s po si tiv os ,a pe na s 10 po si çõ es da co lu na er am us ad as pa ra os va lo re s en tre 0 e 9. • A cl as si fic ad or a ex am in av a um a co lu na de ca da ca rt ão e di st rib ui a m ec an ic am en te o ca rt ão em um do s 12 es ca ni nh os ,d ep en de nd o do lu ga ro nd e fo ra pe rfu ra do . • U m op er ad or en tã o re co lh ia os 12 co nj un to s de ca rt õe s na or de m de se ja da ,a sc en de nt e ou de sc en de nt e. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 1 R ad ix so rt pa ra In te ir os • R ad ix so rt co ns id er a o dí gi to m en os si gn ifi ca tiv o pr im ei ro e or de na os ite ns pa ra aq ue le dí gi to . • D ep oi s re pe te o pr oc es so pa ra o se gu nd o dí gi to m en os si gn ifi ca tiv o, e as si m su ce ss iv am en te . 07 01 01 33 22 07 18 ⇒ 33 ⇒ 07 22 07 18 01 07 22 07 18 33 ↑ ↑ Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 2 R ad ix so rt pa ra In te ir os P rim ei ro re fin am en to : #d ef in e B A S E 25 6 #d ef in e M 8 #d ef in e N B IT S 32 R ad ix so rt In t( Ti po Ite m ∗ A , T ip oI nd ic e n) { fo r (i = 0 ; i < N B IT S / M ; i+ +) O rd en a A so br e o dí gi to i m en os si g n if ic a ti vo us an do um al go rit m o es tá ve l; } • O pr og ra m a re ce be o ve to rA e o ta m an ho n do ve to r. • O nú m er o de bi ts da ch av e (N B its )e o nú m er o de bi ts a co ns id er ar em ca da pa ss ad a (m )d et er m in am o nú m er o de pa ss ad as ,q ue é ig ua la N B its di v m . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 3 R ad ix so rt pa ra In te ir os • O al go rit m o de or de na çã o po rc on ta ge m é um a ex ce le nt e op çã o pa ra or de na ro ve to rA so br e o dí gi to i po rs er es tá ve le de cu st o O (n ). • O ve to ra ux ili ar C oc up a um es pa ço co ns ta nt e qu e de pe nd e ap en as da ba se ut ili za da . – Po re xe m pl o, pa ra a ba se 10 ,o ve to rC ar m az en a va lo re s de k en tre 0 e 9, is to é, 10 po si çõ es . • A im pl em en ta çã o a se gu ir ut ili za B as e = 25 6 e o ve to rC ar m az en a va lo re s de k en tre 0 e 25 5 pa ra re pr es en ta ro s ca ra ct er es A S C II. • N es se ca so po de m os or de na ri nt ei ro s de 32 bi ts (4 by te s co m va lo re s en tre 0 e 23 2 )e m ap en as d = 4 ch am ad as do al go rit m o de or de na çã o po rc on ta ge m . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 4 R ad ix so rt pa ra In te ir os • O al go rit m o de or de na çã o po rc on ta ge m pr ec is a se ra lte ra do pa ra or de na rs ob re m bi ts de ca da ch av e do ve to rA . • A fu nç ão G et B its ex tra iu m co nj un to co nt íg uo de m bi ts do nú m er o in te iro . • E m lin gu ag em de m áq ui na ,o s bi ts sã o ex tra íd os de nú m er os bi ná rio s us an do op er aç õe s an d, sh l( sh ift le ft) ,s hr (s hi ft rig ht ), e no t (c om pl em en ta to do s os bi ts ). • Po re xe m pl o, os 2 bi ts m en os si gn ifi ca tiv os de um nú m er o x de 10 bi ts sã o ex tra íd os m ov en do os bi ts pa ra a di re ita co m x sh r2 e um a op er aç ão an d co m a m ás ca ra 00 00 00 00 11 . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 5 O rd en aç ão po r C on ta ge m A lte ra do #d ef in e G et B its (x ,k ,j ) (x > > k) & ~ (( ~ 0) < < j) vo id C on ta ge m In t( Ti po Ite m ∗ A , T ip oI nd ic e n , in t Pa ss ) { in t i, j; fo r (i = 0 ; i < = B A S E − 1; i+ +) C [i ] = 0 ; fo r (i = 1 ; i < = n ; i+ +) { j = G et B its (A [i ]. C ha ve , Pa ss ∗ M , M ); C [j ] = C [j ] + 1 ; } if (C [0 ] = = n ) re tu rn ; fo r (i = 1 ; i < = B A S E − 1; i+ +) C [i ] = C [i ] + C [i − 1] ; fo r (i = n ; i > 0 ; i− − ) { j = G et B its (A [i ]. C ha ve , Pa ss ∗ M , M ); B [C [j ]] = A [i ]; C [j ] = C [j ] − 1; } fo r (i = 1 ; i < = n ; i+ + )A [i ] = B [i ]; } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 6 R ad ix so rt pa ra In te ir os • N o P ro gr am a, qu an do qu al qu er po si çã o i do ve to rC co nt ém um va lo r ig ua la n si gn ifi ca qu e to do s os n nú m er os do ve to rd e en tra da A sã o ig ua is a i. • Is so é ve rifi ca do no co m an do if lo go ap ós o se gu nd o fo rp ar a C [0 ]. N es se ca so to do s os va lo re s de A sã o ig ua is a ze ro no by te co ns id er ad o co m o ch av e de or de na çã o e o re st an te do an el nã o pr ec is a se re xe cu ta do . • E ss a si tu aç ão oc or re co m fre qu ên ci a no s by te s m ai s si gn ifi ca tiv os de um nú m er o in te iro . • Po re xe m pl o, pa ra or de na rn úm er os de 32 bi ts qu e te nh am va lo re s en tre 0 e 25 5, os trê s by te s m ai s si gn ifi ca tiv os sã o ig ua is a ze ro . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 7 R ad ix so rt pa ra In te ir os vo id R ad ix so rt In t( Ti po Ite m ∗ A , T ip oI nd ic e n) { in t i; fo r (i = 0 ; i < N B IT S / M ; i+ + ) C on ta ge m In t( A , n , i) ; } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 8 R ad ix so rt pa ra In te ir os : A ná lis e • C ad a pa ss ad a so br e n in te iro s em C on ta ge m In tc us ta O (n + B a s e ). • C om o sã o ne ce ss ár ia s d pa ss ad as ,o cu st o to ta lé O (d n + d B a s e ). • R ad ix so rt te m cu st o O (n ) qu an do d é co ns ta nt e e B a s e = O (n ). • S e ca da nú m er o ca be em um a pa la vr a de co m pu ta do r, en tã o el e po de se rt ra ta do co m o um nú m er o de d dí gi to s na no ta çã o ba se n . • P ar a A co nt en do 1 bi lh ão de nú m er os de 32 bi ts (4 dí gi to s na ba se 28 = 25 6) ,a pe na s 4 ch am ad as de C on ta ge m sã o ne ce ss ár ia s. • S e co ns id er ar m os um al go rit m o qu e ut ili za o pr in cí pi o da co m pa ra çã o de ch av es ,c om o o Q ui ck so rt ,e nt ão sã o ne ce ss ár ia s ≈ lo g n = 30 op er aç õe s po rn úm er o (c on si de ra nd o qu e um a pa la vr a de co m pu ta do r oc up a O (l og n ) bi ts ). • Is so si gn ifi ca qu e o R ad ix so rt é m ai s rá pi do pa ra or de na ri nt ei ro s. • O as pe ct o ne ga tiv o é o es pa ço ad ic io na lp ar a B e C . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 10 9 R ad ix so rt pa ra C ad ei as de C ar ac te re s • O al go rit m o de or de na çã o po rc on ta ge m pr ec is a se ra lte ra do pa ra or de na rs ob re o ca ra ct er e k da ch av e de ca da ite m x do ve to rA . vo id C on ta ge m C ar (T ip oI te m ∗ A , T ip oI nd ic e n , in t k) { in t i, j; fo r ( i = 0 ; i < = B A S E − 1; i+ + )C [i ] = 0 ; fo r ( i = 1 ; i < = n ; i+ +) { j = (i n t) A [i ]. C ha ve [k ]; C [j ] = C [j ] + 1 ; } if (C [0 ] = = n ) re tu rn ; fo r (i = 1 ; i < = B A S E − 1; i+ + )C [i ] = C [i ] + C [i − 1] ; fo r (i = n ; i > 0 ; i− − ) { j = (i n t) A [i ]. C ha ve [k ]; B [C [j ]] = A [i ]; C [j ] = C [j ] − 1; } fo r (i = 1 ; i < = n ; i+ + )A [i ] = B [i ]; } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 1. 7 11 0 R ad ix so rt pa ra C ad ei as de C ar ac te re s vo id R ad ix so rt C ar (T ip oI te m ∗ A , T ip oI nd ic e n) { in t i; fo r (i = TA M C H AV E − 1; i > = 0 ; i− − )C on ta ge m C ar (A , n , i) ; } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2 11 1 O rd en aç ão E xt er na • A or de na çã o ex te rn a co ns is te em or de na ra rq ui vo s de ta m an ho m ai or qu e a m em ór ia in te rn a di sp on ív el . • O s m ét od os de or de na çã o ex te rn a sã o m ui to di fe re nt es do s de or de na çã o in te rn a. • N a or de na çã o ex te rn a os al go rit m os de ve m di m in ui ro nú m er o de ac es so as un id ad es de m em ór ia ex te rn a. • N as m em ór ia s ex te rn as ,o s da do s fic am em um ar qu iv o se qü en ci al . • A pe na s um re gi st ro po de se ra ce ss ad o em um da do m om en to . E ss a é um a re st riç ão fo rt e se co m pa ra da co m as po ss ib ili da de s de ac es so em um ve to r. • Lo go ,o s m ét od os de or de na çã o in te rn a sã o in ad eq ua do s pa ra or de na çã o ex te rn a. • Té cn ic as de or de na çã o di fe re nt es de ve m se ru til iz ad as . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2 11 2 O rd en aç ão E xt er na Fa to re s qu e de te rm in am as di fe re nç as da s té cn ic as de or de na çã o ex te rn a: 1. C us to pa ra ac es sa ru m ite m é al gu m as or de ns de gr an de za m ai or . 2. O cu st o pr in ci pa ln a or de na çã o ex te rn a é re la ci on ad o a tra ns fe rê nc ia de da do s en tre a m em ór ia in te rn a e ex te rn a. 3. E xi st em re st riç õe s se ve ra s de ac es so ao s da do s. 4. O de se nv ol vi m en to de m ét od os de or de na çã o ex te rn a é m ui to de pe nd en te do es ta do at ua ld a te cn ol og ia . 5. A va rie da de de tip os de un id ad es de m em ór ia ex te rn a to rn a os m ét od os de pe nd en te s de vá rio s pa râ m et ro s. 6. A ss im ,a pe na s m ét od os ge ra is se rã o ap re se nt ad os . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2 11 3 O rd en aç ão E xt er na • O m ét od o m ai s im po rt an te é o de or de na çã o po ri nt er ca la çã o. • In te rc al ar si gn ifi ca co m bi na rd oi s ou m ai s bl oc os or de na do s em um ún ic o bl oc o or de na do . • A in te rc al aç ão é ut ili za da co m o um a op er aç ão au xi lia rn a or de na çã o. • E st ra té gi a ge ra ld os m ét od os de or de na çã o ex te rn a: 1. Q ue br e o ar qu iv o em bl oc os do ta m an ho da m em ór ia in te rn a di sp on ív el . 2. O rd en e ca da bl oc o na m em ór ia in te rn a. 3. In te rc al e os bl oc os or de na do s, fa ze nd o vá ria s pa ss ad as so br e o ar qu iv o. 4. A ca da pa ss ad a sã o cr ia do s bl oc os or de na do s ca da ve z m ai or es , at é qu e to do o ar qu iv o es te ja or de na do . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2 11 4 O rd en aç ão E xt er na • O s al go rit m os pa ra or de na çã o ex te rn a de ve m re du zi ro nú m er o de pa ss ad as so br e o ar qu iv o. • U m a bo a m ed id a de co m pl ex id ad e de um al go rit m o de or de na çã o po r in te rc al aç ão é o nú m er o de ve ze s qu e um ite m é lid o ou es cr ito na m em ór ia au xi lia r. • O s bo ns m ét od os de or de na çã o ge ra lm en te en vo lv em no to ta lm en os do qu e de z pa ss ad as so br e o ar qu iv o. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 1 11 5 In te rc al aç ão B al an ce ad a de V ár io s C am in ho s • C on si de re um ar qu iv o ar m az en ad o em um a fit a de en tra da : IN T E R C A L A C A O B A L A N C E A D A • O bj et iv o: – O rd en ar os 22 re gi st ro s e co lo cá -lo s em um a fit a de sa íd a. • O s re gi st ro s sã o lid os um ap ós o ou tro . • C on si de re um a m em ór ia in te rn a co m ca pa ci da de pa ra pa ra trê s re gi st ro s. • C on si de re qu e es te ja di sp on ív el se is un id ad es de fit a m ag né tic a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 1 11 6 In te rc al aç ão B al an ce ad a de V ár io s C am in ho s • Fa se de cr ia çã o do s bl oc os or de na do s: fit a 1: IN T A C O A D E fit a 2: C E R A B L A fit a 3: A A L A C N Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 1 11 7 In te rc al aç ão B al an ce ad a de V ár io s C am in ho s • Fa se de in te rc al aç ão -P rim ei ra pa ss ad a: 1. O pr im ei ro re gi st ro de ca da fit a é lid o. 2. R et ire o re gi st ro co nt en do a m en or ch av e. 3. A rm az en e- o em um a fit a de sa íd a. 4. Le ia um no vo re gi st ro da fit a de on de o re gi st ro re tir ad o é pr ov en ie nt e. 5. A o le ro te rc ei ro re gi st ro de um do s bl oc os ,s ua fit a fic a in at iv a. 6. A fit a é re at iv ad a qu an do o te rc ei ro re gi st ro da s ou tra s fit as fo re m lid os . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 1 11 8 In te rc al aç ão B al an ce ad a de V ár io s C am in ho s • Fa se de in te rc al aç ão -P rim ei ra pa ss ad a: 7. N es te in st an te um bl oc o de no ve re gi st ro s or de na do s fo if or m ad o na fit a de sa íd a. 8. R ep ita o pr oc es so pa ra os bl oc os re st an te s. • R es ul ta do da pr im ei ra pa ss ad a da se gu nd a et ap a: fit a 4: A A C E IL N R T fit a 5: A A A B C C L N O fit a 6: A A D E Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 1 11 9 In te rc al aç ão B al an ce ad a de V ár io s C am in ho s • Q ua nt as pa ss ad as sã o ne ce ss ár ia s pa ra or de na ru m ar qu iv o de ta m an ho ar bi trá rio ? – S ej a n ,o nú m er o de re gi st ro s do ar qu iv o. – S up on ha qu e ca da re gi st ro oc up a m pa la vr as na m em ór ia in te rn a. – A pr im ei ra et ap a pr od uz n /m bl oc os or de na do s. – S ej a P (n ) o nú m er o de pa ss ad as pa ra a fa se de in te rc al aç ão . – S ej a f o nú m er o de fit as ut ili za da s em ca da pa ss ad a. – A ss im : P (n ) = lo g f n m . N o ex em pl o ac im a, n= 22 ,m =3 e f= 3 te m os : P (n ) = lo g 3 22 3 = 2. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 1 12 0 In te rc al aç ão B al an ce ad a de V ár io s C am in ho s • N o ex em pl o fo ra m ut ili za da s 2f fit as pa ra um a in te rc al aç ão -d e- f -c am in ho s. • É po ss ív el us ar ap en as f + 1 fit as : – E nc am in he to do s os bl oc os pa ra um a ún ic a fit a. – R ed is tr ib ui a es te s bl oc os en tre as fit as de on de el es fo ra m lid os . – O cu st o en vo lv id o é um a pa ss ad a a m ai s em ca da in te rc al aç ão . • N o ca so do ex em pl o de 22 re gi st ro s, ap en as qu at ro fit as se ria m su fic ie nt es : – A in te rc al aç ão do s bl oc os a pa rt ir da s fit as 1, 2 e 3 se ria to da di rig id a pa ra a fit a 4. – A o fin al ,o se gu nd o e o te rc ei ro bl oc os or de na do s de no ve re gi st ro s se ria m tra ns fe rid os de vo lta pa ra as fit as 1 e 2. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 2 12 1 Im pl em en ta çã o po r m ei o de S el eç ão po r S ub st itu iç ão • A im pl em en ta çã o do m ét od o de in te rc al aç ão ba la nc ea da po de se r re al iz ad a ut ili za nd o fil as de pr io rid ad es . • A s du as fa se s do m ét od o po de m se ri m pl em en ta da s de fo rm a efi ci en te e el eg an te . • O pe ra çõ es bá si ca s pa ra fo rm ar bl oc os or de na do s: – O bt er o m en or de nt re os re gi st ro s pr es en te s na m em ór ia in te rn a. – S ub st itu í-l o pe lo pr óx im o re gi st ro da fit a de en tra da . • E st ru tu ra id ea lp ar a im pl em en ta ra s op er aç õe s: he ap . • O pe ra çã o de su bs tit ui çã o: – R et ira ro m en or ite m da fil a de pr io rid ad es . – C ol oc ar um no vo ite m no se u lu ga r. – R ec on st itu ir a pr op rie da de do he ap . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 2 12 2 Im pl em en ta çã o po r m ei o de S el eç ão po r S ub st itu iç ão A lg or itm o: 1. In se rir m el em en to s do ar qu iv o na fil a de pr io rid ad es . 2. S ub st itu ir o m en or ite m da fil a de pr io rid ad es pe lo pr óx im o ite m do ar qu iv o. 3. S e o pr óx im o ite m é m en or do qu e o qu e sa iu ,e nt ão : • C on si de re -o m em br o do pr óx im o bl oc o. • Tr at e- o co m o se nd o m ai or do qu e to do s os ite ns do bl oc o co rr en te . 4. S e um ite m m ar ca do va ip ar a o to po da fil a de pr io rid ad es en tã o: • O bl oc o co rr en te é en ce rr ad o. • U m no vo bl oc o or de na do é in ic ia do . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 2 12 3 Im pl em en ta çã o po r m ei o de S el eç ão po r S ub st itu iç ão E nt ra 1 2 3 E I N T R N E * T C R E * T A T E * C * L A * E * C * A C * E * L* C E * A L* A L* A C O A A C B A O C A B O C E nt ra 1 2 3 L C O A * A L O A * N O A * A * C A * N * A * E A * N * C * A C * N * E * D E * N * A A N * D A A D A A D D • P rim ei ra pa ss ad a so br e o ar qu iv o ex em pl o. • O s as te ris co s in di ca m qu ai s ch av es pe rt en ce m a bl oc os di fe re nt es . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 2 12 4 Im pl em en ta çã o po r m ei o de S el eç ão po r S ub st itu iç ão • Fa se de in te rc al aç ão do s bl oc os or de na do s ob tid os na pr im ei ra fa se : – O pe ra çã o bá si ca : ob te ro m en or ite m de nt re os ai nd a nã o re tir ad os do s f bl oc os a se re m in te rc al ad os . A lg or itm o: • M on te um a fil a de pr io rid ad es de ta m an ho f . • A pa rt ir de ca da um a da s f en tra da s: – S ub st itu a o ite m no to po da fil a de pr io rid ad es pe lo pr óx im o ite m do m es m o bl oc o do ite m qu e es tá se nd o su bs tit uí do . – Im pr im a em ou tra fit a o el em en to su bs tit uí do . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 2 12 5 Im pl em en ta çã o po r m ei o de S el eç ão po r S ub st itu iç ão • E xe m pl o: E nt ra 1 2 3 A A C I L A C I E C L I R E L I N I L R L N R T N R R T T • P ar a f pe qu en o nã o é va nt aj os o ut ili za r se le çã o po r su bs tit ui çã o pa ra in te rc al ar bl oc os : – O bt ém -s e o m en or ite m fa - ze nd o f − 1 co m pa ra çõ es . • Q ua nd o f é 8 ou m ai s, o m ét od o é ad eq ua do : – O bt ém -s e o m en or ite m fa - ze nd o lo g 2 f co m pa ra çõ es . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 3 12 6 C on si de ra çõ es P rá tic as • A s op er aç õe s de en tra da e sa íd a de da do s de ve m se ri m pl em en ta da s efi ci en te m en te . • D ev e- se pr oc ur ar re al iz ar a le itu ra ,a es cr ita e o pr oc es sa m en to in te rn o do s da do s de fo rm a si m ul tâ ne a. • O s co m pu ta do re s de m ai or po rt e po ss ue m um a ou m ai s un id ad es in de pe nd en te s pa ra pr oc es sa m en to de en tra da e sa íd a. • A ss im ,p od e- se re al iz ar pr oc es sa m en to e op er aç õe s de E /S si m ul ta ne am en te . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 3 12 7 C on si de ra çõ es P rá tic as • Té cn ic a pa ra ob te rs up er po si çã o de E /S e pr oc es sa m en to in te rn o: – U til iz e 2f ár ea s de en tra da e 2f de sa íd a. – P ar a ca da un id ad e de en tra da ou sa íd a, ut ili za -s e du as ár ea s de ar m az en am en to : 1. U m a pa ra us o do pr oc es sa do rc en tra l 2. O ut ra pa ra us o do pr oc es sa do rd e en tra da ou sa íd a. – P ar a en tra da ,o pr oc es sa do rc en tra lu sa um a da s du as ár ea s en qu an to a un id ad e de en tra da es tá pr ee nc he nd o a ou tra ár ea . – D ep oi s a ut ili za çã o da s ár ea s é in ve rt id a en tre o pr oc es sa do rd e en tra da e o pr oc es sa do rc en tra l. – P ar a sa íd a, a m es m a té cn ic a é ut ili za da . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 3 12 8 C on si de ra çõ es P rá tic as • P ro bl em as co m a té cn ic a: – A pe na s m et ad e da m em ór ia di sp on ív el é ut ili za da . – Is so po de le va ra um a in efi ci ên ci a se o nú m er o de ár ea s fo rg ra nd e. E x: In te rc al aç ão -d e- f -c am in ho s pa ra f gr an de . – To da s as f ár ea s de en tra da em um a in te rc al aç ão -d e- f -c am in ho s se es va zi an do ap ro xi m ad am en te ao m es m o te m po . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 3 12 9 C on si de ra çõ es P rá tic as • S ol uç ão pa ra os pr ob le m as : – Té cn ic a de pr ev is ão : ∗ R eq ue ra ut ili za çã o de um a ún ic a ár ea ex tra de ar m az en am en to du ra nt e a in te rc al aç ão . ∗ S up er põ e a en tra da da pr óx im a ár ea qu e pr ec is a se rp re en ch id a co m a pa rt e de pr oc es sa m en to in te rn o do al go rit m o. ∗ É fá ci ls ab er qu al ár ea fic ar á va zi a pr im ei ro . ∗ B as ta ol ha rp ar a o úl tim o re gi st ro de ca da ár ea . ∗ A ár ea cu jo úl tim o re gi st ro é o m en or ,s er á a pr im ei ra a se es va zi ar . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 3 13 0 C on si de ra çõ es P rá tic as • E sc ol ha da or de m de in te rc al aç ão f : – P ar a fit as m ag né tic as : ∗ f de ve se ri gu al ao nú m er o de un id ad es de fit a di sp on ív ei s m en os um . ∗ A fa se de in te rc al aç ão us a f fit as de en tra da e um a fit a de sa íd a. ∗ O nú m er o de fit as de en tra da de ve se rn o m ín im o do is . – P ar a di sc os m ag né tic os : ∗ O m es m o ra ci oc ín io ac im a é vá lid o. ∗ O ac es so se qü en ci al é m ai s efi ci en te . – S ed eg w ic k (1 98 8) su ge re co ns id er ar f gr an de o su fic ie nt e pa ra co m pl et ar a or de na çã o em po uc os pa ss os . – Po ré m ,a m el ho re sc ol ha pa ra f de pe nd e de vá rio s pa râ m et ro s re la ci on ad os co m o si st em a de co m pu ta çã o di sp on ív el . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 4 13 1 In te rc al aç ão Po lif ás ic a • P ro bl em a co m a in te rc al aç ão ba la nc ea da de vá rio s ca m in ho s: – N ec es si ta de um gr an de nú m er o de fit as . – Fa z vá ria s le itu ra s e es cr ita s en tre as fit as en vo lv id as . – P ar a um a in te rc al aç ão ba la nc ea da de f ca m in ho s sã o ne ce ss ár ia s 2f fit as . – A lte rn at iv am en te ,p od e- se co pi ar o ar qu iv o qu as e to do de um a ún ic a fit a de sa íd a pa ra f fit as de en tra da . – Is so re du z o nú m er o de fit as pa ra f + 1. – Po ré m ,h á um cu st o de um a có pi a ad ic io na ld o ar qu iv o. • S ol uç ão : – In te rc al aç ão po lif ás ic a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 4 13 2 In te rc al aç ão Po lif ás ic a • O s bl oc os or de na do s sã o di st rib uí do s de fo rm a de si gu al en tre as fit as di sp on ív ei s. • U m a fit a é de ix ad a liv re . • E m se gu id a, a in te rc al aç ão de bl oc os or de na do s é ex ec ut ad a at é qu e um a da s fit as es va zi e. • N es te po nt o, um a da s fit as de sa íd a tro ca de pa pe lc om a fit a de en tra da . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 4 13 3 In te rc al aç ão Po lif ás ic a • E xe m pl o: – B lo co s or de na do s ob tid os po rm ei o de se le çã o po rs ub st itu iç ão : fit a 1: IN R T A C E L A A B C L O fit a 2: A A C E N A A D fit a 3: – C on fig ur aç ão ap ós um a in te rc al aç ão -d e- 2- ca m in ho s da s fit as 1 e 2 pa ra a fit a 3: fit a 1: A A B C L O fit a 2: fit a 3: A A C E IN N R T A A A C D E L Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 4 13 4 In te rc al aç ão Po lif ás ic a • E xe m pl o: – D ep oi s da in te rc al aç ão -d e- 2- ca m in ho s da s fit as 1 e 3 pa ra a fit a 2: fit a 1: fit a 2: A A A A B C C E IL N N O R T fit a 3: A A A C D E L – Fi na lm en te : fit a 1: A A A A A A A B C C C D E E IL L N N O R T fit a 2: fit a 3: – A in te rc al aç ão é re al iz ad a em m ui ta s fa se s. – A s fa se s nã o en vo lv em to do s os bl oc os . – N en hu m a có pi a di re ta en tre fit as é re al iz ad a. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 4 13 5 In te rc al aç ão Po lif ás ic a • A im pl em en ta çã o da in te rc al aç ão po lif ás ic a é si m pl es . • A pa rt e m ai s de lic ad a es tá na di st rib ui çã o in ic ia ld os bl oc os or de na do s en tre as fit as . • D is tr ib ui çã o do s bl oc os na s di ve rs as et ap as do ex em pl o: fit a 1 fit a 2 fit a 3 To ta l 3 2 0 5 1 0 2 3 0 1 1 2 1 0 0 1 Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 4 13 6 In te rc al aç ão Po lif ás ic a A ná lis e: • A an ál is e da in te rc al aç ão po lif ás ic a é co m pl ic ad a. • O qu e se sa be é qu e el a é lig ei ra m en te m el ho rd o qu e a in te rc al aç ão ba la nc ea da pa ra va lo re s pe qu en os de f . • P ar a va lo re s de f > 8, a in te rc al aç ão ba la nc ea da po de se rm ai s rá pi da . Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 13 7 Q ui ck so rt E xt er no • Fo ip ro po st o po rM on ar d em 19 80 . • U til iz a o pa ra di gm a de di vi sã o e co nq ui st a. • O al go rit m o or de na in si tu um ar qu iv o A = {R 1 ,. .. ,R n } de n re gi st ro s. • O s re gi st ro s es tã o ar m az en ad os co ns ec ut iv am en te em m em ór ia se cu nd ár ia de ac es so ra nd ôm ic o. • O al go rit m o ut ili za so m en te O (l og n ) un id ad es de m em ór ia in te rn a e nã o é ne ce ss ár ia ne nh um a m em ór ia ex te rn a ad ic io na l. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 13 8 Q ui ck so rt E xt er no • S ej a R i, 1 ≤ i ≤ n ,o re gi st ro qu e se en co nt ra na i-é si m a po si çã o de A . • A lg or itm o: 1. P ar tic io na rA da se gu in te fo rm a: { R 1 ,. .. ,R i} ≤ R i+ 1 ≤ R i+ 2 ≤ .. . ≤ R j − 2 ≤ R j − 1 ≤ {R j ,. .. ,R n }, 2. ch am ar re cu rs iv am en te o al go rit m o em ca da um do s su ba rq ui vo s A 1 = {R 1 ,. .. ,R i} e A 2 = {R j ,. .. ,R n }. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 13 9 Q ui ck so rt E xt er no • P ar a o pa rt io na m en to é ut ili za nd a um a ár ea de ar m az en am en to na m em ór ia in te rn a. • Ta m an ho da ár ea : T am A re a = j − i − 1, co m T am A re a ≥ 3. • N as ch am ad as re cu si va s de ve -s e co ns id er ar qu e: – P rim ei ro de ve se ro rd en ad o o su ba rq ui vo de m en or ta m an ho . – C on di çã o pa ra qu e, na m éd ia ,O (l og n ) su ba rq ui vo s te nh am o pr oc es sa m en to ad ia do . – S ub ar qu iv os va zi os ou co m um ún ic o re gi st ro sã o ig no ra do s. – C as o o ar qu iv o de en tra da A po ss ua no m áx im o T am A re a re gi st ro s, el e é or de na do em um ún ic o pa ss o. Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 14 0 Q ui ck so rt E xt er no 5 3 10 6 1 7 4 5 3 10 6 1 7 4 3 10 6 1 7 7 5 3 10 6 1 7 7 3 10 6 1 7 7 3 1 10 6 1 7 3 1 10 10 7 3 1 10 6 6 i L i j E s E i L s i j E s E i L s L i i j E iL i L s E s i j L s E s L i E i j E s L iL s i E i i E iL s j E s L i i E i j L sL i E s 4 5 3 7 4 5 3 77 4 5 3 7 3 4 5 7 4 5 4 5 5 3 10 6 1 7 4 5 3 10 6 1 7 4 3 10 6 1 7 7 5 3 10 6 1 7 7 3 10 6 1 7 7 3 1 10 6 1 7 3 1 10 1 4 6 5 7 10 3 i j E s E iL i L s i j E i L s E s L i i j E s L i E i L s j E s i E iL s L i i E i j E s L s L i i j L sL i E sE i j i L i L s E i E s 4 5 6 4 5 4 5 3 7 3 7 3 7 3 7 3 4 5 7 4 5 7 4 ár ea L in f L su p a) c) e) g) i) k) m ) n)l)j)h)f)d)b) L su p L in f ár ea Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 14 1 Q ui ck so rt E xt er no vo id Q ui ck so rt E xt er no (F IL E ∗ ∗ A rq Li , FI LE ∗ ∗ A rq E i, FI LE ∗ ∗ A rq LE s, in t Es q, in t D ir ) { in t i, j; Ti po A re a A re a ; /∗ A re a de ar m az en am en to in te rn a ∗ / if (D ir − Es q < 1 ) re tu rn ; FA V az ia (& A re a ); P ar tic ao (A rq Li , A rq E i, A rq LE s, A re a , Es q, D ir , & i, & j) ; if (i − Es q < D ir − j) { /∗ or de ne pr im ei ro o su ba rq ui vo m en or ∗ / Q ui ck so rt E xt er no (A rq Li , A rq E i, A rq LE s, Es q, i) ; Q ui ck so rt E xt er no (A rq Li , A rq E i, A rq LE s, j, D ir ); } el se { Q ui ck so rt E xt er no (A rq Li , A rq E i, A rq LE s, j, D ir ); Q ui ck so rt E xt er no (A rq Li , A rq E i, A rq LE s, Es q, i) ; } } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 14 2 Q ui ck so rt E xt er no : P ro ce di m en to s A ux ili ar es vo id Le Su p( FI LE ∗ ∗ A rq LE s, T ip oR eg is tr o ∗ U ltL id o ,i n t ∗ Ls ,s ho rt ∗ O nd eL er ) { fs ee k( ∗ A rq LE s, (∗ Ls − 1) ∗ si ze of (T ip oR eg is tr o ), S E E K _S E T ); fr ea d (U ltL id o , si ze of (T ip oR eg is tr o ), 1 , ∗ A rq LE s) ; (∗ Ls )− − ; ∗ O nd eL er = FA LS E ; } vo id Le In f( FI LE ∗ ∗ A rq Li ,T ip oR eg is tr o ∗ U ltL id o ,i n t ∗ Li ,s ho rt ∗ O nd eL er ) { fr ea d (U ltL id o , si ze of (T ip oR eg is tr o ), 1 , ∗ A rq Li ); (∗ L i) + + ; ∗ O nd eL er = TR U E ; } vo id In se ri rA re a (T ip oA re a ∗ A re a , T ip oR eg is tr o ∗ U ltL id o , in t ∗ N R A re a ) { /∗ In se re U ltL id o de fo rm a or de na da na A re a∗ / In se re Ite m (∗ U ltL id o , A re a ); ∗ N R A re a = O bt er N um C el O cu pa da s( A re a ); } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 14 3 Q ui ck so rt E xt er no : P ro ce di m en to s A ux ili ar es vo id Es cr ev eM ax (F IL E ∗ ∗ A rq LE s, T ip oR eg is tr o R , in t ∗ Es ) { fs ee k( ∗ A rq LE s, (∗ Es − 1) ∗ si ze of (T ip oR eg is tr o ), S E E K _S E T ); fw ri te (& R , si ze of (T ip oR eg is tr o ), 1 , ∗ A rq LE s) ; (∗ Es )− − ; } vo id E sc re ve M in (F IL E ∗ ∗ A rq E i, T ip oR eg is tr o R , in t ∗ E i) { fw ri te (& R , si ze of (T ip oR eg is tr o ), 1 , ∗ A rq E i) ; (∗ E i) + + ; } vo id R et ira M ax (T ip oA re a ∗ A re a , T ip oR eg is tr o ∗ R , in t ∗ N R A re a ) { R et ira U lti m o (A re a , R ); ∗ N R A re a = O bt er N um C el O cu pa da s( A re a ); } vo id R et ira M in (T ip oA re a ∗ A re a , T ip oR eg is tr o ∗ R , in t ∗ N R A re a ) { R et ir aP ri m ei ro (A re a , R ); ∗ N R A re a = O bt er N um C el O cu pa da s( A re a ); } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 14 4 Q ui ck so rt E xt er no : P ro ce di m en to Pa rt ic ao vo id P ar tic ao (F IL E ∗ ∗ A rq Li , FI LE ∗ ∗ A rq E i, FI LE ∗ ∗ A rq LE s, Ti po A re a A re a , in t Es q, in t D ir , in t ∗ i, in t ∗ j) { in t Ls = D ir , Es = D ir , L i = Es q, E i = Es q, N R A re a = 0 , L in f = IN T_ M IN , Ls up = IN T_ M A X ; sh or t O nd eL er = TR U E ; T ip oR eg is tr o U ltL id o , R ; fs ee k (∗ A rq Li , (L i − 1) ∗ si ze of (T ip oR eg is tr o ), S E E K _S E T ); fs ee k (∗ A rq E i, (E i − 1) ∗ si ze of (T ip oR eg is tr o ), S E E K _S E T ); ∗ i = Es q − 1; ∗ j = D ir + 1 ; w hi le (L s > = L i) { if (N R A re a < TA M A R E A − 1) { if (O nd eL er ) Le Su p( A rq LE s, & U ltL id o , & Ls , & O nd eL er ); el se Le In f( A rq Li , & U ltL id o , & Li , & O nd eL er ); In se ri rA re a( & A re a, & U ltL id o , & N R A re a ); co nt in ue ; } if (L s = = Es ) Le Su p( A rq LE s, & U ltL id o , & Ls , & O nd eL er ); el se if (L i = = E i) Le In f( A rq Li , & U ltL id o , & Li , & O nd eL er ); el se if (O nd eL er ) Le Su p( A rq LE s, & U ltL id o , & Ls , & O nd eL er ); el se Le In f( A rq Li , & U ltL id o , & Li , & O nd eL er ); Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 14 5 Q ui ck so rt E xt er no : P ro ce di m en to Pa rt ic ao if (U ltL id o .C ha ve > Ls up ) { ∗ j = Es ; Es cr ev eM ax (A rq LE s, U ltL id o , & Es ); co nt in ue ; } if (U ltL id o .C ha ve < L in f) { ∗ i = E i; E sc re ve M in (A rq E i, U ltL id o , & E i) ; co nt in ue ; } In se ri rA re a( & A re a, & U ltL id o , & N R A re a ); if (E i− Es q < D ir − Es ) { R et ira M in (& A re a, & R , & N R A re a ); E sc re ve M in (A rq E i, R , & E i) ; L in f = R .C ha ve ; } el se { R et ira M ax (& A re a, & R , & N R A re a ); Es cr ev eM ax (A rq LE s, R , & Es ); Ls up = R .C ha ve ; } } w hi le (E i < = Es ) { R et ira M in (& A re a, & R , & N R A re a ); E sc re ve M in (A rq E i, R , & E i) ; } } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 14 6 Q ui ck so rt E xt er no : P ro gr am a Te st e ty pe de f in t Ti po A po nt ad or ; /∗ − − E nt ra aq ui o Pr og ra m a C .2 3− − ∗ / ty pe de f Ti po Ite m T ip oR eg is tr o ; /∗ D ec la ra ca o do s tip os ut ili za do s pe lo qu ic ks or t ex te rn o∗ / FI LE ∗ A rq LE s; /∗ G er en ci a o Ls e o Es ∗ / FI LE ∗ A rq Li ; /∗ G er en ci a o Li ∗ / FI LE ∗ A rq E i; /∗ G er en ci a o E i ∗ / Ti po Ite m R ; /∗ − − En tra m aq ui os Pr og ra m as J. 4, D .2 6, D .2 7 e D .2 8− − ∗ / in t m ai n( in t ar gc , ch ar ∗ ar gv [] ) { A rq Li = fo pe n (" te st e .d at " , "w b" ); if (A rq Li = = N U LL ){ p ri n tf (" A rq ui vo na o po de se r ab er to \n ") ; e xi t( 1 ); } R .C ha ve = 5 ; fw ri te (& R , si ze of (T ip oR eg is tr o ), 1 , A rq Li ); R .C ha ve = 3 ; fw ri te (& R , si ze of (T ip oR eg is tr o ), 1 , A rq Li ); R .C ha ve = 1 0 ; fw ri te (& R , si ze of (T ip oR eg is tr o ), 1 , A rq Li ); R .C ha ve = 6 ; fw ri te (& R , si ze of (T ip oR eg is tr o ), 1 , A rq Li ); R .C ha ve = 1 ; fw ri te (& R , si ze of (T ip oR eg is tr o ), 1 , A rq Li ); R .C ha ve = 7 ; fw ri te (& R , si ze of (T ip oR eg is tr o ), 1 , A rq Li ); R .C ha ve = 4 ; fw ri te (& R , si ze of (T ip oR eg is tr o ), 1 , A rq Li ); fc lo se (A rq Li ); Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 14 7 Q ui ck so rt E xt er no : P ro gr am a Te st e A rq Li = fo pe n (" te st e .d at " , "r +b ") ; if (A rq Li = = N U LL ){ p ri n tf (" A rq ui vo na o po de se r ab er to \n ") ; e xi t( 1 ); } A rq E i = fo pe n (" te st e .d at " , "r +b ") ; if (A rq E i= = N U LL ){ p ri n tf (" A rq ui vo na o po de se r ab er to \n ") ; e xi t( 1 ); } A rq LE s = fo pe n (" te st e .d at " , "r +b ") ; if (A rq LE s = = N U LL ) {p ri n tf (" A rq ui vo na o po de se r ab er to \n ") ; e xi t( 1 ); } Q ui ck so rt E xt er no (& A rq Li , & A rq E i, & A rq LE s, 1 , 7 ); ff lu sh (A rq Li ); fc lo se (A rq E i) ; fc lo se (A rq LE s) ; fs ee k( A rq Li ,0 , S E E K _S E T ); w hi le (f re ad (& R , si ze of (T ip oR eg is tr o ), 1 , A rq Li )) { p ri n tf (" R eg is tr o= % d \n " , R .C ha ve ); } fc lo se (A rq Li ); re tu rn 0 ; } Pr oj et o de A lg or itm os – C ap .4 O rd en aç ão – Se çã o 4. 2. 5 14 8 Q ui ck so rt E xt er no : A ná lis e • S ej a n o nú m er o de re gi st ro s a se re m or de na do s. • S ej a e b o ta m an ho do bl oc o de le itu ra ou gr av aç ão do S is te m a op er ac io na l. • M el ho rc as o: O (n b ) – Po re xe m pl o, oc or re qu an do o ar qu iv o de en tra da já es tá or de na do . • P io rc as o: O ( n 2 T a m A re a ) – oc or re qu an do um do s ar qu iv os re to rn ad os pe lo pr oc ed im en to P ar tic ao te m o m ai or ta m an ho po ss ív el e o ou tro é va zi o. – A m ed id a qu e n cr es ce ,a pr ob ab ili da de de oc or rê nc ia do pi or ca so te nd e a ze ro . • C as o M éd io : O (n b lo g ( n T a m A re a )) – É o qu e te m am ai or pr ob ab ili da de de oc or re r.