Transcript
  • Search8-1 8-2 (Sequential Search)8-3 (Binary Search)8-4 (Fibonacci Search)8-5 (Interpolation Search)

  • 8-1

  • 8-1-1

  • 8-1-2 (Static Search)(Dynamic Search)

  • 8-2(Sequential Search) O(nlogn)O(n)

  • (Sequential Search) n O ( n ) ( n + 1 ) /2 Procedure Sequential(K,data)Beginfor i1 to Size [if Ki = Data thenreturn found]return not foundEnd

  • 8-3(Binary Search)Procedure Binary(K,Data)BeginLeft1;RightSize;while Left 9

    2

    3

    5

    8

    9

    11

    12

    16

    18

    1

    2

    3

    4

    5

    6

    7

    8

    9

    11

  • 8 . 3 . 1

  • 8 . 3 . 2 n (data record)1. (Sequential Search)(Search Length)2. (Binary Search)3. 4. (comparison)? (1+2+3+...n)/n=(n+1)/2

    log2(n+1) log2(n+1) -1 O(log2n)

  • 8-4(Fibonacci Search)F ( n ) F0=0 ,F1=1Fi=Fi-1+Fi-2 i 20,1,1,2,3,5,8,13,21,34,55,89,...0 1

  • n k k Fib(k+1)n+1 k 2 Fib(k)(k-1)(Fib(k-1))(k-2)(Fib(k)+Fib(k-2))n+1 m Fib(k+1)-m=n+1m=Fib(k+1)-(n+1) m 1

    Fib(k)

    Fib(k-1)

    Fib(k)+Fib(k-2)

    -Fib(k-2)

    +Fib(k-2)

    -Fib(k-3)

    +Fib(k-3)

    -Fib(k-4)

    +Fib(k-4)

    K-1

    K-2

    K

  • 8 . 4 . 1 n=33 Fib(8+1)=33+1k=8Fib(8)=21Fib(7)=13Fib(8)+Fib(6)=21+8=29

    21

    13

    29

    8

    18

    26

    32

    5

    11

    16

    20

    24

    28

    31

    33

    3

    7

    10

    12

    15

    17

    19

    23

    25

    27

    30

    24

    2

    1

    4

    6

    9

    14

    22

    -8

    +8

    +5

    -5

    -3

    +3

    -3

    +3

    -2

    +2

    -2

    +2

    -2

    +2

    -1

    +1

    -1

    +1

    -1

    +1

    -1

    -1

    +1

    -1

    +1

    -1

    -1

    +1

    -1

    -1

    -1

    -1

    -1

  • 8 . 4 . 2 n=18 m=Fib(7+1)-(18+1)=21-19=2k=8Fib(7)=13-2=11Fib(6)=8-2=6Fib(7)+Fib(5)-2=13+5-2=16

    13

    8

    18

    5

    11

    16

    20

    3

    7

    10

    12

    15

    17

    19

    2

    1

    4

    6

    9

    14

    +5

    -5

    -3

    +3

    -2

    +2

    -2

    +2

    -1

    +1

    -1

    +1

    -1

    +1

    -1

    -1

    -1

    -1

    -1

    11

    6

    16

    3

    9

    14

    18

    1

    5

    8

    10

    13

    15

    17

    0

    1

    2

    4

    7

    12

    +5

    -5

    -3

    +3

    -2

    +2

    -2

    +2

    -1

    +1

    -1

    +1

    -1

    +1

    -1

    -1

    -1

    -1

    -1

  • n n Fib(k+1) n+1Fib(k)Fib(k-2)key Fib(k)key key key 1 Fib(k)-1 1 Fib(k)-1 Fib(k)key key Fib(k)+1 Fib(k+1)-1 Fib(k)+1 Fib(k+1)-1 O (log2N )

  • Procedure FibonacciSearch(K,Data)Begin//Fib(k+1)-m=n+1iFk-1;pFk-2;q Fk-3if Data > Kii i+m;while i0 [case [:Data < Ki://if q=0[ i 0;]else[ i i-q; t p; p q; //Fibk-3 q t-q; //Fibk-4]:Data=Ki:return i;:Data>Ki://if q=0 i 0;else[ i i+q; p p-q; //Fibk-4 q q-p; //Fibk-5]]]End

    Fib(k-1)

    Fib(k-1)+Fib(k-3)

    Fib(k-4)

    Fib(k-2)

    Fib(k-3)

    -Fib(k-3)

    +Fib(k-3)

    -Fib(k-4)

    +Fib(k-4)

    -Fib(k-5)

    +Fib(k-5)

    -Fib(k-5)

    i

    q

    p

    i=i-q

    q

    p

    i=i+q

    q

    p

  • 8-5(Interpolation Search) Mid=low + (( key - data[low] ) / ( data[high] - data[low] ))* ( high - low )key data[high]data[low]n 1.1,2,3...n 2.low=1 high=n3.low
  • Procedure InterpolationSearch(K,Data)BeginLeft1;RightSize;while Left Right then retirn -1;case [:Data < KMiddle:RightMiddle-1;:Data = KMiddle:return Middle;:Data > KMiddle:LeftMiddle+1;]]return -1;EndO(log n)

  • A

    A

    10

    11

    12

    13

    14

    15

    16

    17

    18

    11

    1

    2

    3

    4

    5

    6

    7

    8

    9

    11=11

    10

    11

    12

    13

    14

    15

    16

    17

    18

    15

    1

    2

    3

    4

    5

    6

    7

    8

    9

    15=15

    (15-10)/(18-10)*(9-1)+1=6

    10

    13

    14

    15

    21

    23

    29

    31

    55

    29

    1

    2

    3

    (11-10)/(18-10)*(9-1)+1=2

    4

    5

    6

    7

    8

    9

    10

    13

    14

    15

    (29-10)/(55-10)*(9-1)+1=4

    29>15

    21

    23

    29

    31

    55

    1

    2

    3

    4

    5

    6

    7

    8

    9

    (29-21)/(55-21)*(9-5)+5=5

    29>21

    10

    13

    14

    15

    21

    23

    29

    31

    55

    1

    2

    3

    4

    5

    6

    7

    8

    9

    (29-23)/(55-23)*(9-6)+6=6

    29>23

    10

    13

    14

    15

    21

    23

    29

    31

    55

    1

    2

    3

    4

    5

    6

    7

    8

    9

    (29-29)/(55-29)*(9-7)+7=7

    29=23

    10

    13

    14

    15

    21

    23

    29

    31

    55

    16

    1

    2

    3

    4

    5

    6

    7

    8

    9

    (16-10)/(55-10)*(9-1)+1=2

    16>13

    10

    13

    14

    15

    21

    23

    29

    31

    55

    1

    2

    3

    4

    5

    6

    7

    8

    9

    (16-14)/(55-14)*(9-3)+3=3

    16>14

    10

    13

    14

    15

    21

    23

    29

    31

    55

    1

    2

    3

    4

    5

    6

    7

    8

    9

    (16-15)/(55-15)*(9-4)+4=4

    16>15

    10

    13

    14

    15

    21

    23

    29

    31

    55

    1

    2

    3

    4

    5

    6

    7

    8

    9

  • AVLC

  • AVL-Treeheight balanced binary tree1962Adelson-VelskiiLandisAVL-TreeAVL TreeTTLTR1.TLTRAVL Tree2.|Htl-Htr|1HtlHtrTLTRbalanced factorBF(P)PBF(P)= Htl-Htr

    BF=-2

    Q

    S

    R

    BF=1

    N

    BF=0

    M

    BF=1

    P

    BF=0

    8

    7

    4,5,6,7,8

    6

    5

    4

  • NAVL Tree1.2.AVL TreeLLLRRLRRNBF2-2PLLNPLRNPRLNPRRNP

  • LL

    P

    1

    PR

    Q

    QL

    0

    QR

    h

    h

    h

    2

    PR

    QL

    1

    QR

    h+1

    P

    Q

    h

    h

    N

    0

    PR

    QL

    0

    QR

    h+1

    P

    Q

    h

    h

    N

    30

    50

    50

    40

    40

    30

    2

    1

    0

    40

    30

    50

    1

    1

    1

    50

    40

    20

    50

    40

    60

    30

    45

    50

    40

    60

    60

    30

    45

    30

    45

    20

    2

    1

    1

    20

  • LR

    1

    PR

    QL

    0

    QR

    h

    P

    Q

    h

    h

    2

    PR

    QL

    -1

    b

    h

    P

    Q

    h+1

    h

    CR

    -1/0

    PR

    QL

    1/0

    0

    h

    P

    Q

    h-1 or h

    h

    CL

    C

    CR

    CL

    C

    h-1 or h

    N

    N

    N

    N

    h-1 or h

    h-1 or h

    50

    40

    45

    50

    40

    45

    2

    -1

    0

    45

    40

    50

    1

    1

    1

    50

    40

    42

    60

    30

    45

    50

    40

    60

    30

    45

    50

    40

    60

    30

    45

    42

    2

    1

    1

    42

  • RL

    -1

    PL

    QR

    0

    QL

    h

    P

    Q

    h

    h

    -2

    PL

    QR

    1

    QL

    h+1

    P

    Q

    h

    h

    N

    0

    PL

    QR

    0

    QL

    h+1

    P

    Q

    h

    h

    N

    50

    60

    56

    50

    60

    56

    2

    1

    0

    56

    60

    50

    1

    1

    1

    50

    40

    52

    60

    70

    56

    50

    60

    40

    70

    56

    50

    56

    40

    60

    52

    52

    -2

    1

    1

    70

  • RR

    -1

    PL

    QR

    0

    QL

    h

    P

    Q

    h

    h

    -2

    PL

    QL

    -1

    b

    h

    P

    Q

    h+1

    h

    CR

    CL

    C

    PL

    QL

    -1/0

    h

    P

    Q

    h-1 or h

    h

    CL

    CR

    C

    1/0

    0

    h-1 or h

    N

    N

    N

    N

    h-1 or h

    h-1 or h

    50

    60

    70

    50

    60

    70

    -2

    -1

    0

    60

    70

    50

    1

    1

    1

    50

    60

    80

    40

    70

    55

    50

    60

    40

    70

    55

    70

    60

    60

    50

    55

    80

    -2

    -1

    -1

    40

  • AVL Tree1.AVL TreeR0R1R-1L0L1L-1NBF2-2PLLNPLRNPRLNPRRNP

  • R0

    1

    PR

    QL

    0

    QR

    h

    P

    Q

    h

    h

    2

    PR

    QL

    0

    QR

    h

    P

    Q

    h

    h-1

    N

    1

    PR

    QL

    -1

    QR

    h

    P

    Q

    h

    h-1

    50

    60

    42

    40

    45

    2

    55

    2

    2

    50

    60

    42

    40

    45

    2

    38

    2

    1

    43

    50

    60

    40

    45

    2

    42

    43

    1

    43

    38

    2

    38

    2

    0

    -1

    0

    1

  • R1

    1

    PR

    QL

    1

    QR

    h

    P

    Q

    h-1

    h

    2

    PR

    QL

    1

    QR

    h-1

    P

    Q

    h

    h-1

    N

    0

    PR

    QL

    0

    QR

    h-1

    P

    Q

    h

    h-1

    1

    32

    55

    50

    70

    35

    50

    70

    35

    40

    45

    2

    40

    45

    1

    2

    2

    1

    1

    32

    2

    1

    40

    50

    35

    45

    2

    1

    2

    32

    70

    0

    0

  • R-1

    2

    50

    60

    20

    30

    1

    50

    60

    2

    35

    40

    43

    20

    30

    1

    1

    35

    40

    43

    -1

    50

    60

    20

    30

    1

    1

    35

    40

    43

    55

    PR

    h-1

    1

    PR

    QL

    -1

    h-1

    P

    Q

    h

    QL

    h-1 or h-2

    h-1

    P

    Q

    CL

    0

    CR

    C

    h-1 or h-2

    h-1 or h-2

    h-1 or h-2

    CL

    b

    CR

    C

    2

    PR

    QL

    -1

    h-1

    P

    Q

    h-1

    CL

    b

    CR

    C

    N

  • L0

    -1

    PL

    QR

    0

    QL

    h

    P

    Q

    h

    h

    -2

    PL

    QR

    0

    QL

    h

    P

    Q

    h

    h-1

    N

    -1

    PL

    QR

    1

    QL

    h

    P

    Q

    h

    h-1

    50

    40

    62

    60

    55

    2

    2

    2

    50

    40

    62

    60

    55

    2

    2

    1

    50

    40

    60

    1

    45

    64

    58

    58

    64

    62

    2

    64

    55

    2

    58

    -2

    0

    1

    -1

  • L-1

    -1

    PL

    QR

    -1

    QL

    h

    P

    Q

    h-1

    h

    -2

    PL

    QR

    -1

    QL

    h-1

    P

    Q

    h

    h-1

    N

    0

    PL

    QR

    0

    QL

    h-1

    P

    Q

    h

    h-1

    50

    40

    65

    60

    55

    2

    1

    2

    68

    45

    50

    40

    65

    60

    55

    2

    1

    1

    68

    -2

    -1

    60

    65

    50

    55

    2

    1

    2

    40

    68

    0

    0

    1

  • L1

    -1

    PL

    QR

    1

    h-1

    P

    Q

    h

    CR

    b

    CL

    C

    -2

    PL

    QR

    1

    h-1

    P

    Q

    h-1

    CR

    b

    CL

    C

    N

    QR

    h-1

    P

    Q

    CR

    CL

    C

    0

    PL

    h-1

    h-1 or h-2

    h-1 or h-2

    h-1 or h-2

    h-1 or h-2

    0

    50

    40

    65

    60

    1

    2

    58

    55

    54

    45

    50

    40

    65

    60

    1

    1

    58

    55

    54

    2

    -1

    50

    40

    65

    60

    1

    1

    58

    54

    55

    0

  • 2-3C

  • 2-3 TreeC2-3 Tree2-3 TreeLdataLdataLdata

    L

    R

    L

    R

    LR

  • 2-3 Tree1.2.

    L

    L

    L

    R

    L

    R

    L

    R

    L

    R

    L

    R

  • 2-3 Tree

    45

    30

    70

    10

    20

    40

    50

    60

    80

    85

    60

  • 2-3 Tree

    45

    30

    70

    10

    20

    40

    50

    60

    80

    85

    90

    90

    45

    30

    70

    85

    10

    20

    40

    50

    60

    80

    90

  • 2-3 Tree

    55

    45

    30

    70

    85

    45

    70

    10

    20

    40

    50

    60

    80

    90

    55

    45

    30

    70

    85

    30

    10

    20

    40

    50

    60

    85

    80

    90

    55

    10

    20

    40

    50

    60

    80

    90

    55

  • 2-3 Tree

    45

    70

    30

    85

    15

    20

    40

    50

    60

    80

    90

    55

    15

    10

    45

    70

    30

    85

    15

    20

    40

    50

    60

    80

    90

    55

    10

    45

    70

    15

    30

    85

    20

    40

    50

    60

    80

    90

    55

    10

  • 2-3 Tree

    45

    70

    15

    30

    85

    20

    40

    50

    60

    80

    90

    55

    10

    25

    45

    70

    15

    30

    85

    20

    40

    50

    60

    80

    90

    55

    10

    25

  • 2-3 Tree

    45

    70

    15

    30

    85

    20

    40

    50

    60

    80

    90

    55

    10

    25

    17

    17

    45

    70

    15

    30

    85

    20

    40

    50

    60

    80

    90

    55

    10

    25

    17

    45

    70

    15

    30

    85

    20

    40

    50

    60

    80

    90

    55

    10

    25

    17

  • 2-3 TreeP

    90

    96

    85

    70

    80

    75

    95

    95

    90

    90

    70

    80

    75

    96

    96

    85

    70

    80

    75

    95

    95

    80

    70

    75

    96

    95

    90

    96

    85

    70

    80

    90

    96

    90

    85

    85

    80

    70

    80

    96

    90

    96

    85

    70

    80

    90

    70

    80

    96

    80

    85

    70

    95

  • 2-3 Tree

    50

    80

    35

    60

    15

    95

    70

    96

    80

    35

    70

    50

    15

    95

    96

    90

    85

    90

    85

    30

    70

    60

    65

    75

    18

    35

    17

    20

    25

    70

    35

    65

    75

    18

    17

    20

    25

    30

  • m-wayC

  • m-way Treem-way TreenA0,(K1,A1) ,(K2,A2).. ,(Kn,An)AiKiAiK1...Kn

  • m-1m-1

    5

    5

    5

    7

    7

    5

    7

    12

    12

    5

    7

    6

    12

    6

    5

    7

    18

    12

    18

    6

    5

    7

    14

    12

    18

    6

    14

  • 5

    7

    8

    12

    6

    10

    4

    8

    5

    7

    10

    12

    6

    5

    7

    10

    4

    6

    4

    7

    5

    10

    6

    4

  • BC

  • BBm-way1.2.P1.Pm-12.Pm-12-3

  • B

    50

    54

    20

    40

    45

    10

    25

    30

    62

    67

    53

    72

    76

    85

    88

    48

    98

    5

    60

    70

    80

    90

    95

    98

    50

    20

    40

    10

    25

    30

    5

    45

    48

    54

    62

    67

    53

    72

    76

    85

    88

    60

    70

    80

    90

    95

    98

  • B

    50

    20

    40

    10

    25

    30

    99

    5

    45

    48

    54

    62

    67

    53

    72

    76

    85

    88

    60

    70

    80

    91

    93

    95

    50

    20

    40

    10

    25

    30

    5

    45

    48

    54

    62

    67

    53

    72

    76

    85

    88

    60

    70

    80

    90

    98

    99

    98

    99

    90

    95

    50

    20

    40

    10

    25

    30

    5

    45

    48

    54

    62

    67

    53

    72

    76

    85

    88

    60

    70

    80

    90

    98

    99

    95


Recommended