HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNGe-ptit.edu.vn/hoctap/hoclieu/  · HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT (Dùng cho sinh viên hệ đào tạo đại học từ xa)

  • View
    221

  • Download
    1

Embed Size (px)

Transcript

  • HC VIN CNG NGH BU CHNH VIN THNG

    CU TRC D LIU V GII THUT

    (Dng cho sinh vin h o to i hc t xa)

    Lu hnh ni b

    H NI - 2007

  • LI NI U

    Cu trc d liu v gii thut l mt trong nhng mn hc c bn ca sinh vin ngnh Cng ngh thng tin. Cc cu trc d liu v cc gii thut c xem nh l 2 yu t quan trng nht trong lp trnh, ng nh cu ni ni ting ca Niklaus Wirth: Chng trnh = Cu trc d liu + Gii thut (Programs = Data Structures + Algorithms). Nm vng cc cu trc d liu v cc gii thut l c s sinh vin tip cn vi vic thit k v xy dng phn mm cng nh s dng cc cng c lp trnh hin i.

    Cu trc d liu c th c xem nh l 1 phng php lu tr d liu trong my tnh nhm s dng mt cch c hiu qu cc d liu ny. V s dng cc d liu mt cch hiu qu th cn phi c cc thut ton p dng trn cc d liu . Do vy, cu trc d liu v gii thut l 2 yu t khng th tch ri v c nhng lin quan cht ch vi nhau. Vic la chn mt cu trc d liu c th s nh hng ln ti vic la chn p dng gii thut no.

    Ti liu Cu trc d liu v gii thut bao gm 7 chng, trnh by v cc cu trc d liu v cc gii thut c bn nht trong tin hc.

    Chng 1 trnh by v phn tch v thit k thut ton. u tin l cch phn tch 1 vn , t thc tin cho ti chng trnh, cch thit k mt gii php cho vn theo cch gii quyt bng my tnh. Tip theo, cc phng php phn tch, nh gi phc tp v thi gian thc hin gii thut cng c xem xt trong chng. Chng 2 trnh by v qui, mt khi nim rt c bn trong ton hc v khoa hc my tnh. Vic s dng qui c th xy dng c nhng chng trnh gii quyt c cc vn rt phc tp ch bng mt s t cu lnh, c bit l cc vn mang bn cht qui.

    Chng 3, 4, 5, 6 trnh by v cc cu trc d liu c s dng rt thng dng nh mng v danh sch lin kt, ngn xp v hng i, cy, th. l cc cu trc d liu cng rt gn gi vi cc cu trc trong thc tin. Chng 7 trnh by v cc thut ton sp xp v tm kim. Cc thut ton ny cng vi cc k thut c s dng trong c coi l cc k thut c s cho lp trnh my tnh. Cc thut ton c xem xt bao gm cc lp thut ton n gin v c cc thut ton ci t phc tp nhng c thi gian thc hin ti u.

    Cui mi phn u c cc cu hi v bi tp sinh vin n luyn v t kim tra kin thc ca mnh. Cui ti liu c cc ph lc hng dn tr li cu hi, m ngun tham kho v ti liu tham kho.

    V nguyn tc, cc cu trc d liu v cc gii thut c th c biu din v ci t bng bt c ngn ng lp trnh hin i no. Tuy nhin, c c cc phn tch su sc hn v c kt qu thc t hn, tc gi s dng ngn ng lp trnh C minh ho cho cc cu trc d liu v thut ton. Do vy, ngoi cc kin thc c bn v tin hc, ngi c cn c kin thc v ngn ng lp trnh C.

    Cui cng, mc d ht sc c gng nhng chc chn khng trnh khi cc thiu st. Tc gi rt mong nhn c s gp ca bn c v ng nghip ti liu c hon thin hn.

    H Ni, thng 10/2007

  • 3

    CHNG 1

    PHN TCH V THIT K GII THUT

    Chng 1 trnh by cc khi nim v gii thut v phng php tinh chnh tng bc

    chng trnh c th hin qua ngn ng din t gii thut. Chng ny cng nu phng php phn tch v nh gi mt thut ton, cc khi nim lin quan n vic tnh ton thi gian thc hin chng trnh.

    Trong mi phn u c cc minh ho c th. Phn u a ra v d v bi ton nt giao thng v phng php gii quyt bi ton t phn tch vn cho n thit k gii thut, tinh chnh tng bc cho ti mc c th hn. Phn 2 a ra mt v d v phn tch v tnh ton thi gian thc hin gii thut sp xp ni bt.

    hc tt chng ny, sinh vin cn nm vng phn l thuyt v tm cc v d tng t thc hnh phn tch, thit k, v nh gi gii thut.

    1.1 GII THUT V NGN NG DIN T GII THUT 1.1.1 Gii thut

    Trong thc t, khi gp phi mt vn cn phi gii quyt, ta cn phi a ra 1 phng php gii quyt vn . Khi mun gii quyt vn bng cch s dng my tnh, ta cn phi a ra 1 gii php ph hp vi vic thc thi bng cc chng trnh my tnh. Thut ng thut ton c dng ch cc gii php nh vy.

    Thut ton c th c nh ngha nh sau: Thut ton l mt chui hu hn cc lnh. Mi lnh c mt ng ngha r rng v c th

    c thc hin vi mt lng hu hn ti nguyn trong mt khong hu hn thi gian. Chng hn lnh x = y + z l mt lnh c cc tnh cht trn. Trong mt thut ton, mt lnh c th lp i lp li nhiu ln, tuy nhin i vi bt k b d

    liu u vo no, thut ton phi kt thc sau khi thc thi mt s hu hn lnh. Nh ni trn, mi lnh trong thut ton phi c ng ngha r rng v c th c thc

    thi trong mt khong thi gian hu hn. Tuy nhin, i khi mt lnh c ng ngha r rng i vi ngi ny nhng li khng r rng i vi ngi khc. Ngoi ra, thng rt kh chng minh mt lnh c th c thc hin trong 1 khong hu hn thi gian. Thm ch, k c khi bit r ng ngha ca cc lnh, cng kh c th chng minh l vi bt k b d liu u vo no, thut ton s dng.

    Tip theo, chng ta s xem xt mt v d v xy dng thut ton cho bi ton n giao thng:

    Gi s ngi ta cn thit k mt h thng n cho mt nt giao thng c nhiu ng giao nhau phc tp. xy dng tp cc trng thi ca cc n giao thng, ta cn phi xy dng mt chng trnh c u vo l tp cc ng r c php ti nt giao thng (li i thng cng c xem nh l 1 ng r) v chia tp ny thnh 1 s t nht cc nhm, sao cho tt c cc ng r trong nhm c th c i cng lc m khng xy ra tranh chp. Sau , chng ta s gn trng thi ca cc n giao thng vi mi nhm va c phn chia. Vi cch phn chia c s nhm t nht, ta s xy dng c 1 h thng n giao thng c t trng thi nht.

  • 4

    Chng hn, ta xem xt bi ton trn vi nt giao thng c cho nh trong hnh 1.1 di. Trong nt giao thng trn, C v E l cc ng 1 chiu, cc ng cn li l 2 chiu. C tt c 13 ng r ti nt giao thng ny. Mt s ng r c th c i ng thi, chng hn cc ng r AB (t A r sang B) v EC. Mt s ng r th khng c i ng thi (gy ra cc tuyn giao thng xung t nhau), chng hn AD v EB. H thng n ti nt giao thng phi hot ng sao cho cc ng r xung t (chng hn AD v EB) khng c cho php i ti cng mt thi im, trong khi cc ng r khng xung t th c th c i ti cng 1 thi im.

    Hnh 1.1 Nt giao thng

    Chng ta c th m hnh ha vn ny bng mt cu trc ton hc gi l th (s c trnh by chi tit chng 5). th l mt cu trc bao gm 1 tp cc im gi l nh v mt tp cc ng ni cc im, gi l cc cnh. Vn nt giao thng c th c m hnh ha bng mt th, trong cc ng r l cc nh, v c mt cnh ni 2 nh biu th rng 2 ng r khng th i ng thi. Khi , th ca nt giao thng hnh 1.1 c th c biu din nh hnh 1.2.

    Hnh 1.2 th ng r

    AB

    C

    D E

    ACAB AD

    BCBA BD

    DBDA DC

    EBEA EC ED

  • 5

    Ngoi cch biu din trn, th cn c th c biu din thng qua 1 bng, trong phn t hng i, ct j c gi tr 1 khi v ch khi c 1 cnh ni nh i v nh j.

    AB AC AD BA BC BD DA DB DC EA EB EC ED

    AB 1 1 1 1

    AC 1 1 1 1 1

    AD 1 1 1

    BA

    BC 1 1 1

    BD 1 1 1 1 1

    DA 1 1 1 1 1

    DB 1 1 1

    DC

    EA 1 1 1

    EB 1 1 1 1 1

    EC 1 1 1 1

    ED

    Bng 1.1 Biu din th ng r bng bng

    Ta c th s dng th trn gii quyt vn thit k h thng n cho nt giao thng

    nh ni. Vic t mu mt th l vic gn cho mi nh ca th mt mu sao cho khng c hai

    nh c ni bi 1 cnh no li c cng mt mu. D thy rng vn nt giao thng c th c chuyn thnh bi ton t mu th cc ng r trn sao cho phi s dng s mu t nht.

    Bi ton t mu th l bi ton xut hin v c nghin cu t rt lu. Tuy nhin, t mu mt th bt k vi s mu t nht l bi ton rt phc tp. gii bi ton ny, ngi ta thng s dng phng php vt cn th tt c cc kh nng c th. C ngha, u tin th tin hnh t mu th bng 1 mu, tip theo dng 2 mu, 3 mu, v.v. cho ti khi tm ra phng php t mu tho mn yu cu.

    Phng php vt cn c v thch hp vi cc th nh, tuy nhin i vi cc th phc tp th s tiu tn rt nhiu thi gian thc hin cng nh ti nguyn h thng. Ta c th tip cn vn theo hng c gng tm ra mt gii php tt, khng nht thit phi l gii php ti u. Chng hn, ta s c gng tm mt gii php t mu cho th ng r trn vi mt s mu kh t, gn vi s mu t nht, v thi gian thc hin vic tm gii php l kh nhanh. Gii thut tm cc gii php tt nhng cha phi ti u nh vy gi l cc gii thut tm theo cm tnh.

    i vi bi ton t mu th, mt thut ton cm tnh thng c s dng l thut ton tham n (greedy). Theo thut ton ny, u tin ta s dng mt mu t nhiu nht s nh c th, tho mn yu cu bi ton. Tip theo, s dng mu th 2 t cc nh cha c t trong bc 1, ri s dng n mu th 3 t cc nh cha c t trong bc 2, v.v.

  • 6

    t mu cc nh vi mu mi, chng ta thc hin cc bc: - La chn 1 nh cha c t mu v t n bng mu mi. - Duyt qua cc nh cha c t mu. Vi mi nh dng ny, kim tra xem c cnh

    no ni n vi mt nh va c t bi mu mi hay khng. Nu khng c cnh no th ta t mu nh ny bng mu mi.

    Thut ton ny c gi l tham n v ti mi bc n t mu tt c cc nh c th m khng cn phi xem xt xem vic t mu c li nhng im bt li cho cc bc sau hay khng. Trong nhiu trng hp, chng ta c th t mu c nhiu nh hn bng 1 mu nu chng ta bt tham n v b qua mt s nh c th t mu c trong bc trc.

    V d, xem xt th hnh 1.3, trong nh 1 c t mu . Ta thy rng hon ton c th t c 2 nh 3 v 4 l mu , vi iu kin ta khng t nh s 2 mu . Tuy nhin, nu ta p dng thut ton tham n theo th t cc nh ln dn th nh 1 v nh 2 s l mu , v khi nh 3, 4 s khng c t mu .

    Hnh 1.3 th By gi ta s xem xt thut ton tham n c p dng trn th cc ng r hnh 1.2 nh

    th no. Gi s ta bt u t nh AB v t cho nh ny mu xanh. Khi , ta c th t cho nh AC mu xanh v khng c cnh ni nh ny vi AB. AD cng c th t mu xanh v khng c cnh ni AD vi AB, AC. nh BA khng c cnh ni ti AB, AC, AD nn cng c th c t mu xanh. Tuy nhin, nh BC khng t c mu xanh v tn ti cnh ni BC v AB. Tng t nh vy, BD, DA, DB khng th t mu xanh v tn ti cnh ni chng ti mt trong cc nh t mu xanh. Cnh DC th c th t mu xanh. Cui cng, cnh EA, EB, EC cng khng th t mu xanh trong khi ED c th c t mu xanh.

    1 5

    3

    4

    2 a) th ban u

    1 5

    3

    4

    2 b) T mu theo thut ton tham n

    1 5

    3

    4

    2 c) Mt cch t mu tt hn

  • 7

    Hnh 1.4 T mu xanh cho cc nh ca th ng r Tip theo, ta s dng mu t cc nh cha c t mu bc trc. u tin l

    BC. BD cng c th t mu , tuy nhin do tn ti cnh ni DA vi BD nn DA khng c t mu . Tng t nh vy, DB khng t c mu cn EA c th t mu . Cc nh cha c t mu cn li u c cnh ni ti cc nh t mu nn cng khng c t mu.

    Hnh 1.5 T mu trong bc 2

    Bc 3, cc nh cha c t mu cn li l DA, DB, EB, EC. Nu ta t mu nh DA l mu lc th DB cng c th t mu lc. Khi , EB, EC khng th t mu lc v ta chn 1 mu th t l mu vng cho 2 nh ny.

    ACAB AD

    BCBA BD

    DBDA DC

Recommended

View more >