75
Pesquisa em Memória Primária Livro “Projeto de Algoritmos” – Nívio Ziviani Capítulo 5 http://www2.dcc.ufmg.br/livros/algoritmos/

cap5-parte1-v2

Embed Size (px)

DESCRIPTION

Cap 5

Citation preview

  • Pesq

    uis

    a em

    M

    emr

    iaPr

    imr

    ia

    Livr

    oPr

    ojet

    ode

    Algo

    ritm

    os

    N

    vio

    Zi

    vian

    iCa

    ptu

    lo5

    http

    ://w

    ww

    2.dc

    c.ufm

    g.br

    /livro

    s/alg

    orit

    mos/

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a em

    M

    emr

    ia Pr

    imr

    ia

    In

    trodu

    o

    -Co

    nce

    itos

    Bsi

    cos

    Pe

    squ

    isa

    Se

    qe

    nci

    al

    r

    vore

    sde

    Pesq

    uis

    a

    r

    vore

    s Bi

    nr

    ias

    dePe

    squ

    isa

    se

    m Ba

    lan

    cea

    me

    nto

    r

    vore

    s Bi

    nr

    ias

    dePe

    squ

    isa

    com

    Bala

    nce

    am

    en

    to

    r

    vore

    sSB

    B

    Tra

    nsf

    orm

    a

    es

    para

    M

    an

    ute

    n

    o da

    Pr

    opr

    ieda

    deSB

    B

    Pesq

    uis

    aD

    igita

    l

    Trie

    , Pa

    trici

    a

    Tra

    nsf

    orm

    a

    ode

    Cha

    ve(H

    ash

    ing)

    Li

    sta

    s En

    cade

    ada

    s,En

    dere

    am

    en

    to Ab

    erto

    , H

    ash

    ing

    Perfe

    ito

  • AlgoritmoseEstruturade Dados II

    Intr

    odu

    o

    -Co

    nce

    itos

    Bs

    ico

    s

    Es

    tudo

    deco

    mo re

    cupe

    rar

    info

    rma

    oa

    parti

    rde

    um

    a

    grande

    m

    ass

    ade

    info

    rma

    o pr

    evi

    am

    ente

    arm

    aze

    na

    da.

    A

    info

    rma

    o

    divi

    dida

    em

    re

    gist

    ros.

    Ca

    da re

    gist

    ro po

    ssui u

    ma ch

    ave

    pa

    rase

    rusa

    da na

    pesq

    uis

    a.

    O

    bjetiv

    o da

    pe

    squ

    isa:

    Enco

    ntra

    r um

    a ou m

    ais

    oco

    rrn

    cia

    sde

    regi

    stro

    sco

    mch

    ave

    s ig

    ua

    is

    chave

    depe

    squ

    isa.

    Pe

    squ

    isa

    com

    suce

    sso

    XPe

    squ

    isa

    sem

    su

    cess

    o.

  • AlgoritmoseEstruturade Dados II

    Intr

    odu

    o

    -Co

    nce

    itos

    Bs

    ico

    s

    Ta

    bela

    s

    Co

    njun

    tode

    regi

    stro

    s o

    u a

    rqu

    ivo

    s

    TABE

    LAS

    Ta

    bela

    :ass

    oci

    ada

    ae

    ntid

    ade

    sde

    vida

    cu

    rta, cr

    iada

    s n

    a

    me

    mr

    ia in

    tern

    a du

    ran

    tea

    exe

    cu

    ode

    u

    mpr

    ogr

    am

    a.

    Ar

    quiv

    o:g

    era

    lme

    nte

    a

    sso

    cia

    doa

    en

    tida

    des

    devi

    da m

    ais

    lon

    ga,

    arm

    aze

    na

    das

    em

    m

    em

    ria

    e

    xte

    rna

    .

    D

    istin

    o

    no

    rg

    ida

    :

    ta

    bela

    :a

    rqu

    ivo

    den

    dice

    s

    a

    rqu

    ivo

    :ta

    bela

    deva

    lore

    sde

    fun

    e

    s.

  • AlgoritmoseEstruturade Dados II

    Esco

    lha

    doM

    to

    dode

    Pesq

    uis

    a m

    ais

    Ade

    quad

    oa

    um

    a D

    eter

    min

    ada

    Apl

    ica

    o

    D

    epe

    nde

    pr

    inci

    palm

    en

    te:

    1.Qu

    an

    tida

    dedo

    s da

    dos

    en

    volvi

    dos.

    2.Ar

    quiv

    o e

    sta

    r su

    jeito

    ain

    ser

    es

    ere

    tira

    das

    freq

    en

    tes.

    Se

    co

    nte

    do

    doa

    rquiv

    o

    est

    ve

    lim

    porta

    nte

    min

    imiz

    ar

    o te

    mpo

    de

    pesq

    uis

    a,se

    m pr

    eo

    cupa

    o

    com

    o

    te

    mpo

    ne

    cess

    rio

    pa

    ra e

    stru

    tura

    ro

    arq

    uiv

    o

  • AlgoritmoseEstruturade Dados II

    Alg

    orit

    mo

    sde

    Pe

    squ

    isa

    Tipo

    s A

    bstr

    ato

    sde

    D

    ado

    s

    im

    porta

    nte

    co

    nsi

    dera

    r o

    s a

    lgo

    ritm

    os

    depe

    squ

    isa

    co

    mo

    tip

    os

    abs

    trato

    sde

    da

    dos,

    co

    m u

    mco

    njun

    tode

    ope

    ra

    es

    ass

    oci

    ado

    au

    ma

    e

    stru

    tura

    de da

    dos,

    de

    talf

    orm

    aqu

    e ha

    ja u

    ma

    in

    depe

    nd

    nci

    ade

    impl

    em

    en

    ta

    o pa

    raa

    so

    pera

    e

    s.

    O

    pera

    e

    s m

    ais

    co

    mu

    ns:

    1.In

    icia

    liza

    ra

    est

    rutu

    rade

    da

    dos.

    2.Pe

    squ

    isa

    ru

    mo

    u m

    ais

    re

    gist

    ros

    com

    dete

    rmin

    ada

    ch

    ave

    .

    3.In

    serir

    um

    n

    ovo

    regi

    stro

    .

    4.R

    etir

    ar

    um

    regi

    stro

    e

    spe

    cfic

    o.

    5.O

    rde

    na

    ru

    ma

    rqu

    ivo

    pa

    ra o

    bte

    r to

    dos

    os

    regi

    stro

    s e

    m o

    rde

    mde

    aco

    rdo

    com

    a

    cha

    ve.

    6.Aju

    nta

    r do

    is a

    rqu

    ivo

    s pa

    ra fo

    rma

    ru

    ma

    rqu

    ivo

    m

    aio

    r.

  • AlgoritmoseEstruturade Dados II

    Dic

    ion

    rio

    N

    om

    eco

    mu

    me

    nte

    u

    tiliz

    ado

    pa

    ra de

    scre

    ver

    um

    a e

    stru

    tura

    de

    dado

    spa

    ra pe

    squ

    isa

    .

    D

    icio

    nr

    io

    um

    tipo

    a

    bstra

    tode

    da

    dos

    com

    a

    so

    pera

    e

    s:

    1.In

    icia

    liza

    2.Pe

    squ

    isa

    3.In

    sere

    4.R

    etir

    a

    An

    alo

    gia

    com

    u

    mdi

    cio

    nr

    io da

    ln

    gua

    po

    rtugu

    esa

    :

    Ch

    ave

    s

    pala

    vra

    s

    R

    egi

    stro

    s

    en

    trada

    s a

    sso

    cia

    das

    com

    pr

    on

    nci

    a, de

    fini

    o, si

    nn

    imo

    s, o

    utra

    s in

    form

    a

    es

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a Se

    qen

    cial

    M

    to

    dode

    pesq

    uis

    a m

    ais

    sim

    ples

    :a

    parti

    rdo

    prim

    eiro

    re

    gist

    ro,pe

    squ

    ise

    se

    qe

    nci

    alm

    en

    te a

    te

    nco

    ntra

    ra

    cha

    ve pr

    ocu

    rada

    ;en

    to

    pare

    .

    Ar

    maz

    en

    ame

    nto

    de u

    mco

    njun

    tode

    regi

    stro

    s po

    r m

    eio

    dotip

    o e

    stru

    tura

    do a

    rra

    njo:

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a Se

    qen

    cial

    # de

    fine

    M

    axn

    10

    type

    defl

    on

    gTi

    poCh

    ave

    ;

    type

    def s

    truct

    R

    egi

    stro

    {Ti

    poCh

    ave

    Ch

    ave

    ;/*

    ou

    tros

    com

    pon

    en

    tes

    */

    }Re

    gist

    ro;

    type

    def i

    nt I

    ndi

    ce;

    type

    def s

    truct

    Ta

    bela

    {R

    egi

    stro

    Item

    [Ma

    xn+

    1];

    Indi

    cen

    ;}T

    abe

    la;

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a Se

    qen

    cial

    Im

    ple

    me

    nta

    o

    pa

    raa

    so

    pera

    e

    s In

    icia

    liza

    ,Pe

    squ

    isa

    :

    void

    Inic

    ializ

    a(T

    abe

    la*T)

    { T-

    >n =

    0;

    } Indic

    e Pe

    squ

    isa(T

    ipo

    Chave

    x,Ta

    bela

    *T)

    {in

    ti;

    T->

    Item

    [0].Ch

    ave

    = x;

    i = T-

    >n +

    1;

    do { i

    --;

    } whi

    le (T

    ->

    Item

    [i].Ch

    ave

    != x);

    retu

    rn i;

    }

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a Se

    qen

    cial

    Indi

    ce ge

    tN(T

    abe

    la *T)

    { retu

    rn T-

    >n;

    } Indic

    e Pe

    squis

    a(T

    ipo

    Chave

    x,Ta

    bela

    *T,

    In

    dice

    k){

    inti

    ;T-

    >Ite

    m[0]

    .Ch

    ave

    = x;

    i = k;

    do { i

    --;

    } whi

    le (T

    ->

    Item

    [i].Ch

    ave

    != x);

    retu

    rn i;

    } void

    re

    cupe

    raR

    egi

    stro

    s(Ta

    bela

    *T,

    Ti

    poCh

    ave

    x){ I

    ndi

    ce k;

    k =

    Pesq

    uis

    a(x,

    T, ge

    tN(T

    )+1);

    if (k!

    = 0)

    prin

    tf(Ac

    hou x

    no %

    d!\n

    ,k);

    els

    e pr

    intf(

    Na

    o ach

    ou x!

    \n);

    whi

    le (k

    != 0)

    {k

    = Pe

    squis

    a(x,

    T,k);

    pr

    intf(

    Acho

    u x

    no %

    d!\n

    ,k);

    }}

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a Se

    qen

    cial

    Im

    ple

    me

    nta

    o

    pa

    ra a

    o

    pera

    cao

    In

    sere

    :

    void

    Inse

    re(R

    egi

    stro

    R

    eg,

    Tabe

    la*T)

    { if

    (T->

    n =

    =M

    axn

    ) pr

    intf("

    Erro

    :ta

    bela

    ch

    eia

    \n");

    els

    e{

    T->

    n+

    +;

    T->

    Item

    [T->

    n] =

    Reg;

    }}

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a Se

    qen

    cial

    Pe

    squ

    isa

    re

    torn

    ao

    ndi

    cedo

    regi

    stro

    qu

    e co

    nt

    ma

    chav

    ex;

    Ca

    so n

    o e

    ste

    ja pr

    ese

    nte

    , o

    valo

    r re

    torn

    ado

    ze

    ro.

    A

    impl

    eme

    nta

    o

    no

    su

    porta

    m

    ais

    de u

    mre

    gist

    roco

    mu

    ma

    m

    esm

    a ch

    ave

    .

    Pa

    raa

    plic

    a

    esco

    me

    sta

    ca

    ract

    ers

    tica

    n

    ece

    ssr

    io in

    clu

    irum

    arg

    um

    ento

    am

    ais

    n

    a fu

    n

    o

    Pesq

    uis

    a pa

    ra co

    nte

    ro

    ndi

    cea

    parti

    rdo

    qua

    lse

    que

    r pe

    squ

    isa

    r.

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a Se

    qen

    cial

    Ut

    iliza

    o

    de u

    mre

    gist

    ro se

    ntin

    ela

    n

    a po

    si

    oze

    ro do

    a

    rra

    y:

    G

    ara

    nte

    qu

    ea

    pesq

    uis

    a se

    mpr

    e te

    rmin

    a:

    se o

    ndi

    ce re

    torn

    ado

    por

    Pesq

    uis

    afo

    r ze

    ro, a

    pesq

    uis

    a fo

    i se

    m su

    cess

    o.

    N

    o

    ne

    cess

    rio

    te

    sta

    rse

    i >

    0,

    devi

    doa

    isto

    :

    o

    a

    ne

    l in

    tern

    o da

    fu

    n

    o Pe

    squ

    isa

    e

    xtre

    ma

    me

    nte

    sim

    ple

    s: o

    ndi

    cei

    decr

    em

    en

    tado

    e a

    cha

    vede

    pesq

    uis

    a

    com

    para

    daco

    m a

    cha

    ve qu

    e e

    st

    no

    regi

    stro

    .

    is

    to fa

    zco

    mqu

    e e

    sta

    t

    cnic

    a se

    ja co

    nhe

    cida

    co

    mo

    pesq

    uis

    a se

    qe

    nci

    al r

    pid

    a.

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a Se

    qen

    cial

    An

    lis

    e:

    Pe

    squ

    isa

    com

    suce

    sso

    :

    m

    elh

    or

    caso

    : C(

    n) =

    1

    pi

    or

    caso

    :

    C(n

    ) = n

    ca

    so m

    dio

    : C(

    n) =

    (n

    + 1)

    / 2

    Pesq

    uis

    a se

    m su

    cess

    o:

    C

    (n) =

    n

    +

    1.

    O

    a

    lgo

    ritm

    ode

    pesq

    uis

    a se

    qe

    nci

    al

    am

    elh

    or

    esc

    olh

    a pa

    rao

    pro

    ble

    ma

    depe

    squ

    isa

    em

    ta

    bela

    sco

    ma

    t25

    regi

    stro

    s.

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a B

    inr

    ia

    Pe

    squ

    isa

    em

    ta

    bela

    po

    dese

    rm

    ais

    efic

    ien

    te

    Sere

    gist

    ros

    fore

    m m

    antid

    os

    em o

    rdem

    Pa

    rasa

    ber

    seu

    ma

    cha

    ve

    est

    pre

    sen

    te n

    a ta

    bela

    1. Co

    mpa

    re a

    cha

    veco

    m o

    regi

    stro

    qu

    e e

    st

    na

    po

    si

    odo

    me

    io

    da ta

    bela

    .

    2. Se

    a

    cha

    ve

    me

    no

    r e

    nt

    oo

    regi

    stro

    pr

    ocu

    rado

    e

    st

    na

    prim

    eira

    m

    eta

    de da

    ta

    bela

    3. Se

    a

    cha

    ve

    ma

    ior

    en

    to

    ore

    gist

    ro pr

    ocu

    rado

    e

    st

    na

    segu

    nda

    m

    eta

    de da

    ta

    bela

    .

    4.R

    epi

    tao

    pro

    cess

    o a

    tqu

    ea

    cha

    ve se

    ja e

    nco

    ntra

    da,

    ou

    fiq

    ue

    ape

    na

    su

    mre

    gist

    ro cu

    ja ch

    ave

    di

    fere

    nte

    da

    pr

    ocu

    rada

    ,

    sign

    ifica

    ndo

    u

    ma

    pe

    squ

    isa

    se

    m su

    cess

    o.

  • AlgoritmoseEstruturade Dados II

    Exem

    plo

    dePe

    squ

    isa

    Bin

    ria

    pa

    raa

    Chav

    eG

  • AlgoritmoseEstruturade Dados II

    Pesq

    uis

    a B

    inr

    ia

    Anl

    ise

    A

    cada

    ite

    ra

    odo

    alg

    orit

    mo, o

    tam

    anho

    da

    ta

    bela

    di

    vidi

    do ao m

    eio

    .

    Lo

    go: o

    nm

    ero

    deve

    zes

    que

    ota

    manho

    da

    ta

    bela

    di

    vidi

    do ao m

    eio

    ce

    rca

    de lo

    g n

    .

    R

    ess

    alva:

    o

    cust

    o pa

    ra m

    ante

    ra

    tabe

    la ord

    ena

    da

    alto

    : a

    cada

    in

    ser

    o na po

    si

    op

    da ta

    bela

    im

    plic

    ano

    desl

    oca

    me

    nto

    dos

    regi

    stro

    sa

    parti

    r da

    po

    si

    op

    para

    as

    posi

    e

    s se

    guin

    tes.

    Co

    nse

    qe

    nte

    mente

    , a

    pesq

    uis

    a bi

    nr

    ia no

    de

    vese

    rusa

    da em

    apl

    ica

    es

    muito

    di

    nm

    icas.

  • Tran

    sfo

    rma

    ode

    Chav

    e(H

    ashi

    ng)

    O

    sre

    gist

    ros

    arm

    aze

    na

    dos

    em

    u

    ma

    ta

    bela

    s

    o di

    reta

    me

    nte

    en

    dere

    ado

    sa

    parti

    rde

    um

    a tra

    nsf

    orm

    a

    o a

    ritm

    tic

    a so

    bre

    ach

    ave

    depe

    squ

    isa

    .

    H

    ash

    sign

    ica

    :

    Fa

    zer

    pica

    din

    hode

    ca

    rne

    e

    vege

    tais

    pa

    ra co

    zin

    har.

    Fa

    zer

    um

    a ba

    gun

    a. (W

    ebs

    ter

    s N

    ew

    W

    orld

    D

    ictio

    na

    ry)

    AlgoritmoseEstruturade Dados II

  • Tran

    sfo

    rma

    ode

    Chav

    e(H

    ashi

    ng)

    Um

    mt

    odo

    depe

    squ

    isa

    com

    o

    uso

    da

    tra

    nsf

    orm

    a

    ode

    cha

    ve

    con

    stitu

    do

    dedu

    as

    eta

    pas

    prin

    cipa

    is:

    1 -

    Com

    puta

    ro

    valo

    r da

    fu

    n

    ode

    tran

    sfo

    rma

    o, a

    qua

    l tra

    nsf

    orm

    aa

    cha

    vede

    pesq

    uis

    a em

    um

    en

    dere

    o da

    ta

    bela

    .

    2 -

    Con

    side

    ran

    do qu

    e du

    as

    ou

    m

    ais

    ch

    ave

    s po

    dem

    ser

    tran

    sfo

    rma

    das

    em

    um

    me

    smo

    e

    nde

    reo

    deta

    bela

    ,

    ne

    cess

    rio

    e

    xist

    iru

    mm

    to

    do pa

    ra lid

    ar

    com

    colis

    es.

    Qu

    alq

    ue

    r qu

    e se

    jaa

    fun

    o

    detra

    nsf

    orm

    a

    o,

    alg

    um

    as

    colis

    es

    iro

    o

    corr

    er

    fata

    lme

    nte

    , e

    tais

    co

    lise

    s t

    mde

    se

    rre

    solv

    ida

    sde

    alg

    um

    afo

    rma

    .

    M

    esm

    o qu

    ese

    obt

    en

    ha u

    ma

    fu

    n

    ode

    tran

    sfo

    rma

    o

    qu

    e

    dist

    ribu

    a o

    s re

    gist

    ros

    de fo

    rma

    un

    iform

    e e

    ntre

    as

    en

    trada

    s da

    tabe

    la,

    exi

    ste

    u

    ma

    a

    lta pr

    oba

    bilid

    ade

    deha

    ver

    colis

    es.

    AlgoritmoseEstruturade Dados II

  • Tran

    sfo

    rma

    ode

    Chav

    e(H

    ashi

    ng)

    O

    para

    doxo

    doa

    niv

    ers

    rio

    (Fe

    ller,

    1968

    , p.

    33

    ),diz

    que

    e

    mu

    mgr

    upo

    de 23

    ou

    m

    ais

    pe

    sso

    as, jun

    tas

    ao

    aca

    so,

    exis

    te u

    ma

    cha

    nce

    ma

    ior

    doqu

    e50

    % de

    que

    2pe

    sso

    as

    com

    em

    ore

    m a

    niv

    ers

    rio

    no

    me

    smo

    di

    a.

    As

    sim

    , se

    fo

    ru

    tiliz

    ada

    u

    ma

    fu

    n

    ode

    tran

    sfo

    rma

    o

    un

    iform

    e qu

    e e

    nde

    rece

    23ch

    ave

    s ra

    nd

    mic

    as

    em

    um

    a ta

    bela

    deta

    ma

    nho

    365,

    a

    pro

    babi

    lida

    dede

    que

    haja

    colis

    es

    m

    aio

    rdo

    que

    50%

    .

    AlgoritmoseEstruturade Dados II

  • Tran

    sfo

    rma

    ode

    Chav

    e(H

    ashi

    ng)

    A

    pro

    babi

    lida

    dep

    de se

    inse

    rirN

    iten

    s co

    nse

    cutiv

    os

    sem

    co

    liso

    e

    m u

    ma

    ta

    bela

    deta

    ma

    nho

    M :

    AlgoritmoseEstruturade Dados II

  • Tran

    sfo

    rma

    ode

    Chav

    e(H

    ashi

    ng)

    Al

    gun

    s va

    lore

    sde

    p

    para

    di

    fere

    nte

    s va

    lore

    sde

    N

    ,

    on

    deM

    =

    36

    5.N

    p

    10 0,

    883

    22 0,

    524

    23 0,

    493

    30 0,

    303

    Pa

    ra N

    pequ

    eno

    apr

    oba

    bilid

    ade

    ppo

    dese

    ra

    pro

    xima

    da

    por

    p

    N (N

    1))/7

    30 .

    Por

    exe

    mpl

    o,

    para

    N =

    10

    en

    to

    p

    87,7%

    .

    AlgoritmoseEstruturade Dados II

  • Fun

    es

    deTr

    ansf

    orm

    ao

    Um

    a fu

    n

    ode

    tran

    sfo

    rma

    o

    de

    ve m

    ape

    ar

    cha

    ves

    em

    inte

    iros

    den

    trodo

    inte

    rva

    lo[0.

    .M

    1],o

    nde

    M

    ota

    ma

    nho

    da

    ta

    bela

    .

    A

    fun

    o

    detra

    nsf

    orm

    a

    oid

    eal

    aqu

    ela

    qu

    e:

    Se

    jasi

    mpl

    es

    de se

    rco

    mpu

    tada

    .

    Pa

    ra ca

    da ch

    ave

    dee

    ntra

    da,

    qua

    lqu

    er

    um

    ada

    s

    sad

    as

    poss

    ve

    is

    igu

    alm

    en

    te pr

    ov

    veld

    eo

    corr

    er.

    AlgoritmoseEstruturade Dados II

  • Mt

    odo

    m

    ais

    Usad

    o

    Us

    ao

    rest

    o da

    di

    vis

    o po

    rM

    .

    h(K) =

    K

    mo

    d M

    ou

    h(K) =

    K

    % M

    (em

    lin

    gua

    gem

    C)

    on

    deK

    u

    min

    teiro

    co

    rre

    spo

    nde

    nte

    ch

    ave

    .

    AlgoritmoseEstruturade Dados II

  • Mt

    odo

    m

    ais

    Usad

    o

    Cu

    idad

    o na

    e

    sco

    lha

    dova

    lor

    de M

    . M

    de

    vese

    r u

    mn

    me

    ropr

    imo

    ,m

    as

    no

    qu

    alq

    ue

    rpr

    imo

    :de

    vem

    ser

    evi

    tado

    s os

    nm

    ero

    s pr

    imo

    s o

    btid

    os

    apa

    rtir

    de

    bi

    j

    on

    deb

    a

    ba

    se do

    con

    junto

    deca

    ract

    ere

    s(ge

    ralm

    en

    teb

    = 64

    para

    BCD

    , 12

    8pa

    raAS

    CII,

    256

    para

    EBCD

    IC,

    ou

    100

    para

    a

    lgu

    ns

    cdi

    gos

    deci

    ma

    is),e

    i e

    js

    o pe

    que

    no

    s in

    teiro

    s.

    AlgoritmoseEstruturade Dados II

  • Tran

    sfo

    rma

    ode

    Chav

    es N

    oN

    um

    ric

    as

    As

    cha

    ves

    no

    n

    um

    ric

    as

    deve

    mse

    rtra

    nsf

    orm

    ada

    s e

    m n

    me

    ros:

    n

    on

    me

    rode

    cara

    cte

    res

    da ch

    ave

    .

    Ch

    ave

    [i]co

    rre

    spo

    nde

    re

    pre

    sen

    ta

    oAS

    CII d

    o i-

    sim

    o

    cara

    cte

    re da

    ch

    ave

    .

    p[i

    ] u

    min

    teiro

    de u

    mco

    njun

    tode

    pe

    sos

    gera

    dos

    ale

    ato

    riam

    en

    te pa

    ra1

    i n

    .

    AlgoritmoseEstruturade Dados II

  • Tran

    sfo

    rma

    ode

    Chav

    es N

    oN

    um

    ric

    as

    Va

    nta

    gem

    de se

    usa

    rpe

    sos:

    Do

    is co

    njun

    tos

    dife

    ren

    tes

    de pe

    sos

    p1 [i]

    e p2

    [i],

    1

    i n

    ,

    leva

    adu

    as

    fun

    e

    sde

    tran

    sfo

    rma

    o

    h1 (K

    ) e h2

    (K

    ) di

    fere

    nte

    s.

    AlgoritmoseEstruturade Dados II

  • Tran

    sfo

    rma

    ode

    Chav

    es N

    oN

    um

    ric

    as

    Pr

    ogr

    am

    a qu

    e ge

    rau

    m pe

    sopa

    ra ca

    da ca

    ract

    er

    deu

    ma

    ch

    ave

    con

    stitu

    da

    de n

    cara

    cte

    res:

    void

    G

    era

    Peso

    s(Tip

    oPeso

    sp)

    { /* G

    era

    va

    lore

    s ale

    ato

    rios

    entre

    1 e 10

    .00

    0 */

    inti

    ;st

    ruct

    tim

    eva

    l sem

    ente

    ;/*

    Utiliz

    ar

    o te

    mpo

    com

    o se

    mente

    pa

    raa

    funca

    o sr

    and()

    */

    getti

    meofd

    ay(&

    sem

    ente

    ,N

    ULL);

    srand((

    int)(

    sem

    ente

    .tv

    _se

    c +

    10

    0000

    0*se

    men

    te.tv

    _use

    c));

    for

    (i = 0;

    i

    Prox-

    >Ite

    m.Ch

    ave

    ,si

    zeof(T

    ipoCh

    ave

    )) ))

    Ap=

    Ap->

    Prox;

    if (!s

    trncm

    p(Ch,

    Ap->

    Prox-

    >Ite

    m.Ch

    ave

    ,si

    zeof(T

    ipoCh

    ave

    )))

    retu

    rn Ap

    ;els

    e re

    turn

    N

    ULL;

    /*

    Pesq

    uis

    a se

    m su

    cess

    o*/

    }}

    AlgoritmoseEstruturade Dados II

  • Ope

    ra

    esdo

    Dic

    ion

    rio

    Us

    ando

    List

    as En

    cade

    adas

    void

    Inse

    re(T

    ipo

    Item

    x,Ti

    poPe

    sos

    p,Ti

    poD

    icio

    na

    rioT)

    { if

    (Pe

    squ

    isa

    (x.Ch

    ave

    , p,

    T)

    =

    = N

    ULL)

    Ins(x

    , &T

    [h(x.

    Cha

    ve, p)]

    );e

    lse

    prin

    tf("R

    egi

    stro

    ja

    e

    sta

    pr

    ese

    nte

    \n");

    }

    AlgoritmoseEstruturade Dados II

  • Ope

    ra

    esdo

    Dic

    ion

    rio

    Us

    ando

    List

    as En

    cade

    adas

    void

    R

    etir

    a(T

    ipo

    Item

    x,Ti

    poPe

    sos

    p,Ti

    poD

    icio

    na

    rioT)

    { Ap

    on

    tado

    r Ap

    ;

    Ap=

    Pesq

    uis

    a(x.

    Cha

    ve, p,

    T)

    ;

    if (A

    p=

    = N

    ULL)

    pr

    intf("

    Re

    gist

    ro n

    ao

    e

    sta

    pr

    ese

    nte

    \n");

    els

    e R

    et(A

    p, &T

    [h(x.

    Cha

    ve, p)]

    , &x

    );}

    AlgoritmoseEstruturade Dados II

  • An

    lis

    e

    As

    sum

    indo

    qu

    e qu

    alq

    ue

    rite

    m do

    con

    junto

    tem

    igu

    al

    pro

    babi

    lida

    dede

    se

    re

    nde

    rea

    do pa

    ra qu

    alq

    ue

    r e

    ntra

    dade

    T,

    en

    to

    oco

    mpr

    ime

    nto

    e

    spe

    rado

    deca

    da lis

    ta en

    cade

    ada

    N

    /M,

    on

    deN

    repr

    ese

    nta

    on

    me

    rode

    regi

    stro

    s n

    a ta

    bela

    e M

    o

    tam

    an

    ho da

    ta

    bela

    .

    Lo

    go:

    as

    ope

    ra

    es

    Pesq

    uis

    a,

    Inse

    ree

    Re

    tira

    cu

    sta

    m

    O(1

    + N

    /M )o

    pera

    e

    s e

    m m

    dia

    ,o

    nde

    aco

    nst

    an

    te1

    repr

    ese

    nta

    o te

    mpo

    para

    e

    nco

    ntra

    ra

    en

    trada

    n

    a ta

    bela

    e N

    /M

    o te

    mpo

    para

    pe

    rco

    rre

    ra

    lista

    .

    Para

    va

    lore

    sde

    M

    prx

    imo

    sde

    N

    , o

    te

    mpo

    se

    to

    rna

    con

    sta

    nte

    ,is

    to,

    inde

    pen

    den

    tede

    N

    .

    AlgoritmoseEstruturade Dados II

  • Ende

    rea

    men

    to A

    bert

    o

    Qu

    ando

    onm

    ero

    dere

    gist

    ros

    ase

    rem

    arm

    aze

    nado

    s na

    tabe

    la pu

    der

    ser

    previ

    am

    ente

    est

    imado

    ,ent

    o no

    have

    rnece

    ssid

    ade

    deusa

    r apo

    nta

    dore

    s pa

    ra

    arm

    aze

    nar

    os

    regi

    stro

    s.

    Ex

    iste

    m v

    rios

    mt

    odo

    s pa

    ra arm

    aze

    nar

    Nre

    gist

    ros

    em

    um

    a ta

    bela

    deta

    manho

    M >

    N

    ,os

    quais

    util

    izam

    os

    luga

    res

    vazi

    os

    na pr

    pria

    ta

    bela

    pa

    ra re

    solv

    er

    as

    colis

    es.

    (K

    nuth

    , 19

    73, p.

    518)

    AlgoritmoseEstruturade Dados II

  • Ende

    rea

    men

    to A

    bert

    o

    N

    o En

    dere

    am

    ento

    a

    bert

    oto

    das

    as

    cha

    ves

    so

    arm

    aze

    na

    das

    na

    pr

    pria

    ta

    bela

    ,se

    mo

    uso

    dea

    pon

    tado

    res

    exp

    lcito

    s.

    Ex

    iste

    m v

    rias

    pro

    post

    as

    para

    ae

    sco

    lha

    delo

    caliz

    a

    es

    alte

    rna

    tiva

    s. A

    ma

    issi

    mpl

    es

    ch

    am

    ada

    de ha

    shin

    g lin

    ear

    ,

    on

    dea

    posi

    o

    h j

    na

    ta

    bela

    dada

    por:

    h j=

    (h(

    x) +

    j) m

    od

    M,

    para

    1

    j M

    1.

    AlgoritmoseEstruturade Dados II

  • Exem

    plo

    Se

    a

    i-

    sim

    a le

    trado

    alfa

    beto

    re

    pre

    sen

    tada

    pe

    lo n

    me

    roi e

    a fu

    n

    ode

    tran

    sfo

    rma

    o

    h(Cha

    ve) =

    Cha

    ve%

    M

    u

    tiliz

    ada

    pa

    raM

    =

    7,

    e

    nt

    oo

    resu

    ltado

    da

    in

    ser

    oda

    sch

    ave

    sL

    U N

    E

    Sn

    a

    tabe

    la,

    usa

    ndo

    hash

    ing

    line

    ar

    para

    re

    solv

    er

    colis

    es

    m

    ost

    rado

    a

    baix

    o.

    AlgoritmoseEstruturade Dados II

  • Exem

    plo

    Po

    r e

    xem

    plo

    :

    h(L) =

    h(1

    2) =

    5,

    h(U

    ) =

    h(2

    1) =

    0,

    h(N ) =

    h(1

    4) =

    0,

    h(E

    ) = h(5

    ) = 5,

    h(S) =

    h(1

    9) =

    5.

    AlgoritmoseEstruturade Dados II

  • Estr

    utu

    rado

    Dic

    ion

    rio

    Us

    ando

    Ende

    rea

    men

    to A

    bert

    o

    #defin

    eVa

    zio "!!!

    !!!!!!

    !"#d

    efin

    eR

    etir

    ado

    "**********"

    #defin

    e M

    7

    #defin

    e n 11

    /*

    Tam

    anho

    da

    ch

    ave

    */

    AlgoritmoseEstruturade Dados II

  • Estr

    utu

    rado

    Dic

    ion

    rio

    Us

    ando

    Ende

    rea

    men

    to A

    bert

    oty

    pede

    funsi

    gned

    int A

    ponta

    dor;

    type

    defc

    har

    Tipo

    Chave

    [n];

    type

    defu

    nsi

    gned

    Tipo

    Peso

    s[n];

    type

    def s

    truct

    Ti

    poIte

    m{

    /*outro

    s co

    mpo

    nente

    s*/

    Tipo

    Chave

    Ch

    ave

    ;

    }Tip

    oIte

    m;

    type

    defu

    nsi

    gned

    int I

    ndi

    ce;

    type

    def T

    ipoIte

    m Ti

    poD

    icio

    nario

    [M];

    AlgoritmoseEstruturade Dados II

  • Ope

    ra

    esdo

    Dic

    ion

    rio

    Us

    ando

    Ende

    rea

    men

    to A

    bert

    o

    void

    Inic

    ializ

    a(T

    ipo

    Dic

    ion

    ario

    T)

    { in

    ti;

    for

    (i = 0;

    i Ch

    ave

    < (*p

    )->R

    eg.

    Cha

    ve) {

    Pesq

    uis

    a(x,

    &(

    *p)-

    >Es

    q);re

    turn

    ;} if (

    x->

    Cha

    ve>

    (*p

    )->R

    eg.

    Cha

    ve)

    Pe

    squ

    isa

    (x, &(

    *p)-

    >D

    ir);e

    lse

    *x

    = (*p

    )->R

    eg;

    } AlgoritmoseEstruturade Dados II

  • Pro

    cedi

    men

    to pa

    ra In

    serir

    n

    a r

    vo

    re

    AlgoritmoseEstruturade Dados II

    At

    ingi

    ru

    ma

    pon

    tado

    r n

    ulo

    e

    mu

    mpr

    oce

    sso

    depe

    squ

    isa

    sign

    ifica

    um

    a pe

    squ

    isa se

    m su

    cess

    o.

    O

    apo

    nta

    dor

    nu

    lo a

    tingi

    do

    opo

    nto

    dein

    ser

    o.

  • Pro

    cedi

    men

    to pa

    ra In

    serir

    n

    a r

    vo

    re

    AlgoritmoseEstruturade Dados II

    void

    In

    sere

    (Re

    gist

    rox,

    Apo

    nta

    dor

    *p)

    { if

    (*p =

    = N

    ULL)

    {

    *p

    = (A

    pon

    tado

    r)ma

    lloc(s

    ize

    of(N

    o));

    (*p)->

    Re

    g=

    x;

    (*p)->

    Esq

    = N

    ULL;

    (*p

    )->D

    ir =

    N

    ULL;

    retu

    rn;

    } if (x.

    Cha

    veR

    eg.

    Cha

    ve) {

    Inse

    re(x,

    &(

    *p)-

    >Es

    q);

    retu

    rn;

    } if (x.

    Cha

    ve>

    (*p

    )->R

    eg.

    Cha

    ve)In

    sere

    (x, &(

    *p)-

    >D

    ir);e

    lse

    pr

    intf("

    Erro

    :R

    egi

    stro

    ja

    exi

    ste

    n

    a a

    rvo

    re\n

    ");

    }

  • Pro

    cedi

    men

    tos

    para

    In

    icia

    lizar

    e Cr

    iar

    a

    rvo

    re AlgoritmoseEstruturade Dados II

    void

    Inic

    ializ

    a(A

    pon

    tado

    r*D

    icio

    na

    rio)

    { *D

    icio

    na

    rio=

    N

    ULL;

    }

  • Pro

    cedi

    men

    to pa

    ra R

    etira

    rx

    da r

    vo

    re

    Algu

    ns

    com

    en

    trio

    s:

    1. A

    retir

    ada

    de u

    mre

    gist

    ro n

    o

    to

    sim

    ple

    squ

    an

    toa

    inse

    ro

    .

    2. Se

    o

    n

    que

    co

    nt

    mo

    regi

    stro

    a se

    rre

    tira

    do po

    ssu

    ino

    mx

    imo

    um

    desc

    en

    den

    te

    ao

    pera

    o

    si

    mpl

    es.

    3. N

    oca

    sodo

    n

    con

    ter

    dois

    de

    scen

    den

    tes

    ore

    gist

    ro

    a se

    rre

    tira

    do de

    vese

    rpr

    ime

    iro:

    su

    bstit

    ud

    o pe

    lo re

    gist

    ro m

    ais

    di

    reita

    n

    a su

    brv

    ore

    esq

    ue

    rda

    ;

    o

    u pe

    lo re

    gist

    ro m

    ais

    e

    squ

    erd

    a n

    a su

    brv

    ore

    di

    reita

    .

    AlgoritmoseEstruturade Dados II

  • Exem

    plo

    da

    R

    etira

    dade

    u

    mR

    egis

    tro

    da r

    vo

    re

    As

    sim

    :pa

    ra re

    tira

    ro

    regi

    stro

    com

    cha

    ve5

    da r

    vore

    ba

    sta

    troc

    -lo

    pelo

    re

    gist

    roco

    mch

    ave

    4o

    u pe

    lo re

    gist

    roco

    mch

    ave

    6, e

    en

    to

    re

    tira

    ro

    n

    que

    re

    cebe

    uo

    regi

    stro

    com

    cha

    ve5.

    AlgoritmoseEstruturade Dados II

  • Exem

    plo

    da

    R

    etira

    dade

    u

    m

    Reg

    istr

    o da

    r

    vo

    re

    void

    Ante

    cess

    or(A

    pon

    tado

    rq,

    Apo

    nta

    dor

    *r)

    { if

    ( (*r)-

    >D

    ir !=

    N

    ULL)

    {An

    tece

    sso

    r(q, &(

    *r)-

    >D

    ir);re

    turn

    ;} q->

    Re

    g=

    (*r

    )->R

    eg;

    q =

    *r;

    *r

    = (*r

    )->Es

    q;fre

    e(q)

    ;}

    AlgoritmoseEstruturade Dados II

  • Exem

    plo

    da

    R

    etira

    dade

    u

    mR

    egis

    tro

    da r

    vo

    revo

    idR

    etir

    a(R

    egi

    stro

    x,Ap

    onta

    dor

    *p)

    {Ap

    onta

    dor

    Aux;

    if (*p

    =

    = NU

    LL) {

    prin

    tf("Er

    ro:

    Regi

    stro

    nao est

    a na arv

    ore

    \n");

    retu

    rn;

    } if (x.

    Chave

    < (*p

    )->R

    eg.

    Chave

    ) {

    Ret

    ira(x,

    &(

    *p)-

    >Es

    q);

    retu

    rn;

    } if (x.

    Chave

    > (*p

    )->R

    eg.

    Chave

    ){ Re

    tira(x,

    &(

    *p)-

    >D

    ir);

    retu

    rn;

    }AlgoritmoseEstruturade Dados II

  • Exem

    plo

    da

    R

    etira

    dade

    u

    mR

    egis

    tro

    da r

    vo

    reif

    ((*p)-

    >D

    ir =

    = N

    ULL)

    {

    Aux

    = *p;

    *p

    = (*p

    )->Es

    q;fre

    e(A

    ux);

    retu

    rn;

    } if ((*p

    )->Es

    q!=

    N

    ULL)

    { An

    tece

    sso

    r(*p,

    &(

    *p)-

    >Es

    q);re

    turn

    ;} Au

    x =

    *p;

    *p

    = (*p

    )->D

    ir;fre

    e(A

    ux);

    } AlgoritmoseEstruturade Dados II

  • Exem

    plo

    da

    R

    etira

    dade

    u

    mR

    egis

    tro

    da r

    vo

    re

    Obs

    .: pr

    oc.

    recu

    rsivo

    An

    tece

    sso

    r s

    a

    tiva

    do qu

    ando

    o n

    qu

    e co

    nt

    m re

    gist

    roa

    se

    rre

    tira

    do po

    ssu

    i2

    desc

    ende

    nte

    s.

    Solu

    o

    u

    sada

    po

    rW

    irth,

    19

    76, p.

    211. Algo

    ritmoseEstruturade Dados II

  • Ou

    tro

    Ex

    empl

    ode

    Ret

    irada

    deN

    AlgoritmoseEstruturade Dados II

  • Ou

    tro

    Ex

    empl

    ode

    Ret

    irada

    deN

    AlgoritmoseEstruturade Dados II

  • Cam

    inha

    men

    toCe

    ntr

    al

    Ap

    s co

    nst

    rud

    aa

    rvo

    re,

    pode

    ser

    nece

    ssr

    io pe

    rcorr

    er

    todo

    os

    regi

    stro

    s qu

    e co

    mp

    em

    ata

    bela

    ou a

    rquiv

    o.

    Ex

    iste

    m

    ais

    deum

    a ord

    em

    deca

    min

    ham

    ento

    em

    rvo

    res,

    mas

    am

    ais

    t

    il

    ach

    am

    ada

    ord

    em

    deca

    min

    ham

    ento

    centra

    l.

    Oca

    min

    ham

    ento

    centra

    l m

    ais

    be

    m exp

    ress

    o em

    term

    os

    recu

    rsiv

    os:

    1.ca

    min

    ha na su

    brv

    ore

    esq

    uerd

    a na ord

    em

    centra

    l;2.

    visi

    taa

    raiz

    ;3.

    cam

    inha

    na su

    brv

    ore

    di

    reita

    na ord

    em

    centra

    l.

    Uma ca

    ract

    ers

    tica im

    porta

    nte

    doca

    min

    ham

    ento

    centra

    l

    que os

    ns

    s

    o vi

    sita

    dos

    de fo

    rma

    ord

    ena

    da.

    AlgoritmoseEstruturade Dados II

  • Cam

    inha

    men

    toCe

    ntr

    al

    Pe

    rco

    rre

    ra

    rvo

    re:

    u

    san

    do ca

    min

    ham

    en

    toce

    ntra

    lre

    cupe

    raa

    sch

    ave

    s n

    a o

    rde

    m1,

    2,

    3,

    4,

    5,

    6

    e 7.

    AlgoritmoseEstruturade Dados II

  • Cam

    inha

    men

    toCe

    ntr

    al

    O

    proce

    dim

    ento

    Cen

    tral

    most

    rado

    aba

    ixo

    :

    void

    Ce

    ntra

    l(Apo

    nta

    dor

    p){

    if (p

    ==

    N

    ULL)

    retu

    rn;

    Centra

    l(p->

    Esq);

    prin

    tf("%

    ld\n

    ", p-

    >R

    eg.

    Chave

    );Ce

    ntra

    l(p->

    Dir);

    }

    AlgoritmoseEstruturade Dados II

  • An

    lis

    e

    O

    nm

    ero

    deco

    mpa

    ra

    es

    em

    u

    ma

    pe

    squ

    isa

    com

    suce

    sso

    :

    me

    lho

    r ca

    so:

    C(n

    ) = O

    (1)

    pio

    r ca

    so:

    C(n

    ) = O

    (n)

    caso

    m

    dio

    : C(

    n) =

    O

    (log

    n)

    O

    te

    mpo

    de

    exe

    cu

    odo

    sa

    lgo

    ritm

    os

    para

    r

    vore

    s bi

    nr

    ias

    depe

    squ

    isa

    de

    pen

    dem

    m

    uito

    dofo

    rma

    toda

    sr

    vore

    s.

    AlgoritmoseEstruturade Dados II

  • An

    lis

    e

    1. Pa

    rao

    bte

    ro

    pio

    r ca

    so ba

    sta

    qu

    ea

    sch

    ave

    s se

    jam

    inse

    rida

    s e

    m o

    rdem

    cr

    esc

    en

    te o

    u de

    cre

    sce

    nte

    .

    Nes

    te ca

    soa

    rvo

    re re

    sulta

    nte

    u

    ma

    lis

    talin

    ea

    r,cu

    jo n

    mer

    o m

    dio

    deco

    mpa

    ra

    es

    (n +

    1)/

    2.

    2. Pa

    rau

    ma

    r

    vore

    depe

    squ

    isa

    a

    lea

    toria

    on

    me

    ro

    esp

    era

    dode

    com

    para

    es

    pa

    ra re

    cupe

    rar

    um

    regi

    stro

    qu

    alq

    ue

    r

    cerc

    ade

    1,

    39 lo

    g n

    ,a

    pen

    as39

    %pi

    or

    que

    ar

    vore

    co

    mpl

    eta

    men

    te ba

    lan

    cea

    da.

    AlgoritmoseEstruturade Dados II