ΠΛΗ30 ΜΑΘΗΜΑ 1.4

download ΠΛΗ30 ΜΑΘΗΜΑ 1.4

of 11

  • date post

    08-Feb-2017
  • Category

    Education

  • view

    112
  • download

    0

Embed Size (px)

Transcript of ΠΛΗ30 ΜΑΘΗΜΑ 1.4

  • 30

    1:

    1.4:

    !"

    # $% T(n)=aT(n/b)+f(n)

    '( )*('( )*(

    !"#$%&'"#$()%*+#$%

    !"#$%&'($%)*

    +

    , -(%.('/%0

    + 121

    3

    456#78$56#9:7;?2

    + = 1=@A+ = 1=@A

    B

    . +,( ' #'(

    ',$ ' #'( -!:

    !"#$%&'"#$()%*+#$%

    +!+-

    - $!( ' -+! '( #( $%(

    T(n)=aT(n/b)+f(n)

    +!+- .

    %( -+/( ' -+! '( #( $%(

    T(n)=aT(n/b)+f(n)

    +!+- +!+-

    ,( '0,( MergeSort

    ,( 1#'( BinarySearch

    .. -"!1. ! ,

    !"#$%&'"#$()%*+#$%

    -,'- %( ,( ,( -! %( ,( +!(

    +-!' +, ! # !.+-!' +, ! # !.

    # % -' ! + ' ' - '( -'%-#(

    '( -! ' -', '(.

    -# 2# -,( * 2!-' ' $#.

    '#'- ,' - + -! ' '( '( !( +%+-

    !-' # ' ! ' ':

    procedure recursive(n)

    ...

    ...

    --'#- * +-!2( *( ,(:

    BinarySearch ' 1#' '$-! - ! !

    MergeSort ' '0, -,( +!

    ...

    recursive(n-1)

    ...

    ...

    end procedure

  • .. -"!1. ! ,1. ,( 1#'( BinarySearch (1.&'*+" -' !)

    , !"#$%&'"#$()%*+#$%

    BinarySearch # 1#':

    !(: 0,%( +!( A, '$-! x !(: 0,%( +!( A, '$-! x

    30(:

    ' '$-! +$- ' +!, -+'%2-' % '

    '$-! x ' +! .

    ' '$-! - +$- ' +!, -+'%2-' 0.

    -' ! ' !: ,( -0-'1- ' -! '$-! '

    +! !- +-+'-(:+! !- +-+'-(:

    ' -! '$-! -! ' x, -+'%2- ' % '.

    ' x -! ,'- +, ' -! '$-! ','- /$-

    ' ' ' +! +, ' $# %$ ' -! '$-!

    ' x -! - *'- +, ' -! '$-! ','- /$-

    ' ' ' +! +, ' -! '$-! %$ ' '%(

    .. -"!1. ! ,1. ,( 1#'( BinarySearch (2. )-()

    - !"#$%&'"#$()%*+#$%

    '" 2!-' ! +! '( BinarySearch - /-

    procedure BinarySearch(A,x,start,finish)procedure BinarySearch(A,x,start,finish)

    if start>finish then return 0

    else

    middle=(start+finish) div 2if (x==A[middle]) then

    return middleelse if (xmiddle) thenpos=BinarySearch(A,x,middle+1,finish)return pos

    end if

    end if

    end procedure

    .. -"!1. ! ,1. ,( 1#'( BinarySearch (3. - '%-()

    . !"#$%&'"#$()%*+#$%

    '-*- ' , /$'( ' '$-! 11 ' +!:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    4#: BinarySearch(A,11,1,15): middle=(1+15) div 2=8. xA[middle]

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    2 3 5 7 11 13 17 21 23 27 31 33 37 41 43

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    2 3 5 7 11 13 17 21 23 27 31 33 37 41 43

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    2 3 5 7 11 13 17 21 23 27 31 33 37 41 43

    start

    start

    finish

    finish

    # 4#: BinarySearch(A,11,5,7) : middle=(5+7) div 2=6 x

  • .. -"!1. ! ,1. ,( 1#'( BinarySearch (4. )

    0 !"#$%&'"#$()%*+#$%

    - $-,'- +-!+'" *-' +, ' # $%:

    = 0,1 n

    +-# "', '# $% -! !'- +-!+ ' *-,

    ' +- !1- "( -0#(:

    -! +-!+

    7 +*+'- '-# # $%:

    >+

    =

    =0,91

    2

    0,1

    )(n

    nT

    n

    nT

    12

    n

    2

    n

    7 +*+'- '-# # $%:

    +! *- - ' - $!( +*+'- ,'

    ++,'' '( -!:

    >+

    =

    =0,9

    2

    0,1

    )(n

    nT

    n

    nT

    )(log)( nnT =

    .. -"!1. ! ,2. ,( '0,( MergeSort (1.&'*+" -' !)

    !"#$%&'"#$()%*+#$%

    MergeSort # 0, - $-:

    !(: +!( () A - n '$-! !(: +!( () A - n '$-!

    30(: '0, '" '$-!" ' +! - *0 -

    -' ! ' !: ,(:

    0-! ' '-, ' ' +!

    0-! ' -0! ' ' +!

    $"-*- ' * '0% +% ' - ! '0%

    !!

    '0, - '* !-' - # # '( !(

    !(.

    .. -"!1. ! ,2. ,( '0,( MergeSort (2. )-()

    !"#$%&'"#$()%*+#$%

    '" 2!-' ! +! '( MergeSort - /-

    procedure MergeSort(A,start, finish)procedure MergeSort(A,start, finish)

    if |A|

  • .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    !"#$%&'"#$()%*+#$%

    # 4# MergeSort(,1,16)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 9 10 13

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    !"#$%&'"#$()%*+#$%

    # 4# MergeSort(,1,16)

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    , !"#$%&'"#$()%*+#$%

    # 4# (A,1,8)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    18 7 4 11

    5 6 7 8

    9 20 6 118 7 4 11 9 20 6 1

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    - !"#$%&'"#$()%*+#$%

    # 4# (A,1,4)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    18 7 4 11

    5 6 7 8

    9 20 6 118 7 4 11 9 20 6 1

    1 2

    18 7

    3 4

    4 11

  • .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    . !"#$%&'"#$()%*+#$%

    # 4# (A,1,2): 0 ' ++!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    18 7 4 11

    5 6 7 8

    9 20 6 118 7 4 11 9 20 6 1

    1 2

    7 18

    3 4

    4 11

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    / !"#$%&'"#$()%*+#$%

    # 4# (A,3,4): 0 ' ++!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    18 7 4 11

    5 6 7 8

    9 20 6 118 7 4 11 9 20 6 1

    1 2

    7 18

    3 4

    4 11

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    0 !"#$%&'"#$()%*+#$%

    # 4# (A,1,4): $- '" * ++"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    4 7 11 18

    5 6 7 8

    9 20 6 14 7 11 18 9 20 6 1

    1 2

    7 18

    3 4

    4 11

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    !"#$%&'"#$()%*+#$%

    # 4# (A,5,8)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    4 7 11 18

    5 6 7 8

    9 20 6 14 7 11 18 9 20 6 1

    1 2

    7 18

    3 4

    4 11

    5 6

    9 20

    7 8

    6 1

  • .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    !"#$%&'"#$()%*+#$%

    # 4# (A,5,6): 0 ' ++!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    4 7 11 18

    5 6 7 8

    9 20 6 14 7 11 18 9 20 6 1

    1 2

    7 18

    3 4

    4 11

    5 6

    9 20

    7 8

    6 1

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    !"#$%&'"#$()%*+#$%

    # 4# (A,7,8): 0 ' ++!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    4 7 11 18

    5 6 7 8

    9 20 6 14 7 11 18 9 20 6 1

    1 2

    7 18

    3 4

    4 11

    5 6

    9 20

    7 8

    1 6

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    !"#$%&'"#$()%*+#$%

    # 4# (A,5,8): $- '" * ++"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    18 7 4 11 9 20 6 1

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    4 7 11 18

    5 6 7 8

    1 6 9 204 7 11 18 1 6 9 20

    1 2

    7 18

    3 4

    4 11

    5 6

    9 20

    7 8

    1 6

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    !"#$%&'"#$()%*+#$%

    # 4# (A,1,8): $- '" * ++"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    1 4 6 7 9 11 18 20

    9 10 11 12 13 14 15 16

    22 19 14 5 2 3 10 13

    1 2 3 4

    4 7 11 18

    5 6 7 8

    1 6 9 204 7 11 18 1 6 9 20

    1 2

    7 18

    3 4

    4 11

    5 6

    9 20

    7 8

    1 6

  • .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    , !"#$%&'"#$()%*+#$%

    '!'$ ! ,-( %( #-( ' (9,16)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    18 7 4 11 9 20 6 1 22 19 14 5 2 3 10 13

    1 2 3 4 5 6 7 8

    1 4 6 7 9 11 18 20

    9 10 11 12 13 14 15 16

    2 3 5 10 13 14 19 22

    1 2 3 4

    4 7 11 18

    5 6 7 8

    1 6 9 20

    9 10 11 12

    5 14 19 22

    13 14 15 16

    2 3 10 134 7 11 18 1 6 9 20

    1 2

    7 18

    3 4

    4 11

    5 6

    9 20

    7 8

    1 6

    5 14 19 22 2 3 10 13

    9 10

    19 22

    11 12

    5 14

    13 14

    2 3

    15 16

    10 13

    .. -"!1. ! ,2. ,( '0,( MergeSort (3. - '%-()

    - !"#$%&'"#$()%*+#$%

    # 4# (A,1,16): $- '" * ++"1 2 3 4 5 6 7 8 9 10