Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)

5,252 views

Published on

Διαίρει και Βασίλευε

Published in: Education
  • Be the first to comment

  • Be the first to like this

ΠΛΗ30 ΜΑΘΗΜΑ 2.1 (ΕΚΤΥΠΩΣΗ)

  1. 1. 30 2: 2.1: ! " #$%& " ! "#$ % & ' ' ()& '* + ,-./0 ! " #1 ' $ % & ' '* 2 ,-./0 3 /" #1 ' 4 * 5 " 677 8 & 9 &: ;& ! " 4< = . $'(" !$ !$" !()$ !$ !$" & : ' ' *$ (-) ' ' *$ ! )& ) * " +( ,& ! " ! )& ) * " +( ,& ' ' *$ +( $" +$ " - &( " (QuickSort) +( $" ' $+ " !$ k- (! $ $% .& & ' & +( $" $ ' $% & ,& Strassen B. , )& ." ) * " +$ ,& #! " ! & 2 &(! ! !$ !$" )$ $% ! ! )& ." '$ .)$ & & '! ) , ," + & ." $*$ $+ " + ! & ! &(" +$ $ : ( 2.1) ! )& !$ & $% $+ ! $% ( 2.2) ! !,& /' !,& +( ,& ( 2.3) 0' )$ & ( * * " ! )& ." ! " +$ ,& '$ & !(" % ".
  2. 2. B. , 1. $! " 1& " +( $" * 2 & ! ! '( ! - " 2 ! : 1. : ' !$ ) $% ' $2 !$" (! ' . $ " '$' $2 ! . 2. 0 0 0 : ' !,& ' . $ " '$' $2 !,& ( & * $ ." " !$ * $ +( $ ) 3. 0 0 : 0'$ $+ (" ! " % " !$ ) $% ' $2 !$", '( ! " ' . $ " % " !,& '$' $2 !,&. . , 1. 1. +( $" ! - &( " MergeSort %! " +( $" ! - &( " MergeSort ( +( $" - &( " +)3& ) & 4 $+ !$ : 1. : ' & " ), 5 ! *%$ . : !$& ' & !$& ' & ],...,[ 1 naaA = ],...,[ 2/11 naaA = ],...,[ 12/2 nn aaA += '$ ' $ (! ! !$ +$ $ & : 2. 0 0 0 : ' !,& *%$ '$' $2 !,& '$ ' $ %'!$ & + &$&! & * $ ." " !$ MergeSort. 3. 0 0 : +)3& !,& *%$ ' & ,& + & ! ! & * * Merge (2 .' 1.4) + ( ) (&$ 2/11 n 12/2 nn + )log(...)( 2 2)( nnn n TnT Θ==Θ+= . , 1. 2. +( $" ! - &( " QuickSort &! " +( $" ! - &( " QuickSort ( +( $" +$ " - &( ") & ' " 4 $+ !$ : 1. : ' & " ), 5 ! *%$ . : !$& ' & 1 '$ ' ) ( ! !$ ) '$ & (! '( !$ 1 ],...,[ 1 naaA = 1 1 !$& 2 '$ ' .) ( ! !$ ) '$ & + %! '( !$ 1 2. 0 0 0 : ' !,& *%$ '$' $2 !,& (! - &( !,& '$' & ,& 1 2) '$ ' $ %'!$ & + &$&! & * $ ." " !$ QuickSort. 3. 0 0 : ' & " A = [A1] 1[A2] . , 1. 2. +( $" ! - &( " QuickSort (1.# *$ 3* ") '! " !, 4 & ! $'$ ! " * * " QuickSort: procedure QuickSort(A,start,finish) if start<finish then pos=Partition(A,start,finish) QuickSort(A,start,pos-1) QuickSort(A,pos+1,finish) end ifend if end procedure procedure Partition(A,start,finish) odigo=A[start] i=start; j=finish for (k=start+1 to finish) if (A[k]>odigo) B[j]=A[k]; j=j-1 else B[i]=A[k]; i=i+1 end for B[i]=odigo; = return pos; end procedure
  3. 3. . , 1. 2. +( $" ! - &( " QuickSort (2. * + !. ") (! " " ! .-$ .& ' * + !. " ! " Partition: B.1 B.2 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4k i j 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 B.3 B.4 B.5 B.6 B.7 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 11k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 18 11k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 20 18 11k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 6 20 18 11k i j 1 2 3 4 5 6 7 8 9 7 4 11 18 20 6 1 1 2 3 4 5 6 7 8 7 4 6 1 20 18 11k i j 1 2 3 4 5 6 7 8 7 4 6 1 9 20 18 11 +( $" ! - &( " QuickSort (2. * + !. ") ! " 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 7 4 11 9 6 1 14 5 2 3 10 13 18 19 22 20 1 2 3 4 5 6 7 8 9 10 11 12 7 4 11 9 6 1 14 5 2 3 10 13 4 6 1 5 2 3 7 13 10 14 9 11 14 15 16 19 22 20 19 20 22 1 2 3 4 5 6 4 6 1 5 2 3 1 2 3 4 5 6 8 9 10 11 12 13 10 14 9 11 10 9 11 13 14 15 16 20 22 20 221 2 3 4 5 6 10 9 11 13 14 20 22 16 22 22 1 2 3 1 2 3 1 3 2 5 6 5 6 5 6 8 9 10 10 9 11 9 10 11 12 14 14 6 6 6 2 3 3 2 2 3 2 2 2 8 9 9 10 11 11 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 9 10 11 13 14 18 19 20 22 . , 1. 2. +( $" ! - &( " QuickSort (3. & ) ! " * * !$ Partition .) '$ ' $ (! ! (n) & 6 %! " '!, ": 7! & !$ ' $ + & ! ! & . !$ ' & . (! ' $ %'! & * $ : )log(...)(2)( . nnn n TnT Θ==Θ+= αςκυριαρχθ & (! " '!, ": 7! & !$ ' $ + & ! ! & . !$ ' & . (! ' $ %'! & * $ : ! & . ' '!, ? )log(...)( 2 2)( nnn n TnT Θ==Θ+= ( ) )(...)(1)( 2 . nnnTnT Θ==Θ+−= επαναληψηςµεθ . , 1. 2. +( $" ! - &( " QuickSort (3. & ) ! " & . " '!, ": & , $ (! & $' & ! * & ! ' ! !$ ' & *%$ $ ! !(! ! . $ ( $ $ ' - " !$ +$ $ * &$&! '( ! & & * $ ). : [ ] [ ] [ ]nTnTnnTnnTT nT )()0()1(...)()2()1()()1()0( )( Θ++−++Θ+−Τ++Θ+−+ = 8 ' $ ' : 6 ! ! & $'$ '$* &% ! (! )% T(n)= (nlogn) [ ] [ ] [ ] n nT )( = [ ] n nnnTTT nT )()(...)1()0(2 )( Θ++++ = [ ] )( )(...)1()0(2 )( n n nTTT nT Θ+ +++ =
  4. 4. . , 1. 3. +( $" ' $+ " QuickSelect ! " : & ! .& " ! - &( !$" ' & " n !$ ) . 9 ! ! & 2 !$ k- (! $ !$ ) $ * + ! + $!%'$ : 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 $ 5- (! $ !$ ) $ & !$ 5 $ 10- (! $ !$ ) $ & !$ 11 +( $ : $4 & " +( $": - &( !$& ' & ( MergeSort) '. - !$ k-$ (! $ !$ ) $. $ ' $ (! ! : (nlogn) QuickSelect: 4 $+ : $ /! : O(n) . , 1. 3. +( $" ' $+ " QuickSelect ( *. ) #! " ! ( ! !o ' $ !$ ' & '$ & * * partition. ) 5 ! 4$ & : )&$ .& & '( !$ " *%$ '$' & " '$ ' $ %'!$ & ! ! $'$'$ !$ k. 1! 4$% * * Partition ' !$& ' & ," - " [A1] apos [A2] & k=pos !(! 2 !$ !$ ) $ & !$ apos. & k<pos !(! : )&$ !$& ' & A1 + !$ k- (! $ !$ ) $ & k>pos !(! : )&$ !$& ' & 2 + !$ (k-n1-1)- (! $ !$ ) $ (('$ n1 !$ ' $" !,& !$ ) ,& !$ 1) . , 1. 3. +( $" ' $+ " QuickSelect (1.# *$ 3* ") $! " $'$ : *$+ 3 ! " ' ' &, * * " & ( $ : procedure QuickSelect(A,start,finish,k) if start>finish then return 0 elseelse pos=Partition(A,start,finish) if k=pos then return A[pos] else if k<pos then return QuickSelect(A,start,pos-1,k) else if k>pos then return QuickSelect(A,pos+1,finish,k-pos) end if end if end procedure 3. +( $" ' $+ " QuickSelect(2. * + !. " + k=12) %! " 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 7 4 11 9 6 1 14 5 2 3 10 13 18 19 22 20 1 2 3 4 5 6 7 8 9 10 11 12 7 4 11 9 6 1 14 5 2 3 10 13 4 6 1 5 2 3 7 13 10 14 9 11 8 9 10 11 12 13 10 14 9 11 10 9 11 13 1410 9 11 13 14 12 14 14
  5. 5. . , 1. 3. +( $" ' $+ " QuickSelect (3. & ) &! " * * !$ Partition .) '$ ' $ (! ! (n) & 6 %! " '!, ": 7! & !$ ' $ + & ! ! & . !$ ' & . (! ' $ %'! & * $ : )(...)()( . nn n TnT Θ==Θ+= αςκυριαρχθ & (! " '!, ": 7! & !$ ' $ + & ! ! & . !$ ' & . (! ' $ %'! & * $ : 5( ! .& ' $ .- '&$ ' $ ' $ !$ ' & 3 ! & ' ! +) & ! .& ' $ !$ ' & ' '$ ! & . . )(...)( 2 )( nn n TnT Θ==Θ+= ( ) )(...)(1)( 2 . nnnTnT Θ==Θ+−= επαναληψηςµεθ . , 1. 3. +( $" ' $+ " QuickSelect (4. + ! * * &! *,&) '! " $! & ! * * !,& ' &! *,& $'$ : , 5 ! !$ ) 5- * " '( 5- * ' .+$ !$ $ !$ ) $. ' & 2 &$ & * $ + ! !$ ) . ' .+$ * * !$ $ !,& ,& (!,& ,&…) '(' .+$ * * !$ $ !,& ,& (!,& ,&…) '( ' &! * . .).: 5- * " $" & " & * $ !. ' ! .4 ! !$ 9 ( ' $+ $* +$% !$ ) $ ) 16 13 1 2 3 4 5 18 7 4 11 9 6 7 8 9 10 20 6 1 22 19 11 12 13 14 15 14 5 2 3 10 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 9 19 5 13 . , 1. 3. +( $" ' $+ " QuickSelect (4. + ! * * &! *,&) (! " ' $+ !$ $ !$ ) $ '( 5 !$ ) . ! ( ) (&$: / & $ ' & " .) n !$ ) . $ &$ ) (&$ T(n) ' .+$ n/5 4$ ." !$ $ ( ) (&$ (1)). $ 2 !( . &$ ( ) (&$ 1' ! &$ & * $ + n/5 * *$ .& . )()1( 5 n n Θ=Θ 1' ! &$ & * $ + n/5 * *$ .& . & '3" '$ ' $ (! ! ! " ' $+ " !$ !$ ) $ ! & * * !,& 5- *,& ' $ %'! '( ! & ' ! " & * $ " ). ": '$* &% ! (! & '$ % ( ' $, * (! 2 '$ '!$&! !$ ) !$& 3n/10 !$ ) ( '(* - ' ' ! ). * (+ & * $ ! " QuickSelect + & + !$ '$ % 7n/10 !$ ) . )(...)( 5 )( . nn n TnT Θ==Θ+= αςκυριαρχθ . , 1. 3. +( $" ' $+ " QuickSelect (4. + ! * * &! *,&) ! " & , !3&$ ! & * * ' $+ " $* +$% !$ ) $ !$& ' $ +$% &$ 3* : procedure QuickSelect(A,start,finish,k) if start=finish then return A[start] elseelse m 5- . swap(A[m],A[start]) pos=Partition(A,start,finish) if k=pos then return A[pos] else if k<pos then return QuickSelect(A,start,pos-1,k) else if k>pos then return QuickSelect(A,pos+1,finish,k-pos) end if end if end procedure
  6. 6. . , 1. 3. +( $" ' $+ " QuickSelect (4. + ! * * &! *,&) ! " & * $ ). '$ ' + 4 ! & ! '$ ' $ (! ! !$ +$ $ & : & % $ .& ' (2 +. $ " n: ' &! * " . $ & ) (&$ (n)' &! * " . $ & ) (&$ (n) * * Partition . ) (&$ (n) & * $ + & + .& ' (2 +. $ " !$ '$ % 7n/10, & '3" $ ) (&$" '$ ' ! ! & (7n/10) & '3": ! & ) (! ' '!, , ! .)$ T(n)=O(n) )(...)( 10 7 )( . nn n TnT Θ==Θ+= αςκυριαρχθ . , 1. 4. +( $" '$ ' $% ' & ,& Strassen ! " : '$ $+ ! !$ + &( &$ *%$ nxn ' & ,& . ++ ++ =×= =×= 2222122121221121 2212121121121111 2221 1211 2221 1211 babababa babababa bb bb aa aa C BAC +( $ : 4 $+ !$ +&, !$% +$ $ '( 12. '$ ' $ (! ! !$ & (n2). +( $" !$ Strassen: 4 $+ !$ : $ ' $ (! ! : (n2,81) ( %! $ +( $ . %! '$ ' $ (! ! .) ! + ": (n2,38) ++ 222212212122112122212221 bababababbaa . , 1. 4. +( $" '$ ' $% ' & ,& Strassen O +&, !(" +( $" '$ ' $% * * ! !,& ' & ,& '$ & $'$ : *$+ 3 ," - ": ! " procedure MultMatrix(A,B) for (i=1 to n) for (j=1 to n) C[i][j]=0; '$ ' $ (! ! & : C[i][j]=0; for (k=1 to n) C[i][j]=C[i][j]+A[i][k]*B[k][j]; end for end for end for return C end procedure ( ) )(...)1()1()( 3 nnnnnT Θ==Θ⋅+Θ⋅⋅= . , 1. 4. +( $" '$ ' $% ' & ,& Strassen Strassen ‘70: 4 $+ !$ * 2 ( , 3 (! n ! $") ' & " ' & !$ " ' & ": #! " = 1211 AA AA A = 1211 BB BB B 7'$ .& " '( !$ " '$' & " .) .+ $" n/2 x n/2 O Strassen ' $ ' & '$ $+ !$ + &( &$ C=AxB ! 5$&! " !$& ' & : 2221 AA = 2221 BB B = 2221 1211 CC CC C
  7. 7. . , 1. 4. +( $" '$ ' $% ' & ,& Strassen 1 ' $ .++ : )% (! : $! " 2222122122 2122112121 2212121112 2112111111 BABAC BABAC BABAC BABAC += += += += &! & &$ !$& nxn '$ / $ !,& ' & ,&. : &$&! 8 '$ / $ n/2 x n/2 ' & ,& 0 : & * $ !$& * $ ! ('$. 0 0 : 4 ' $ . " nx2 x nx2 ' & ,& / + & % , .& ' (2 +. $ " n, %&, 8 '$' $2 ! +. $ " n/2 &* 5, ! " % " ) (&$ (n2) '$ ' $ (! ! & : 6 2 ! , ). !$& ' $4 & +( $ 2222122122 BABAC += )(...)( 2 8)( 32 nn n TnT remMasterTheo Θ==Θ+= . , 1. 4. +( $" '$ ' $% ' & ,& Strassen 1 ' $ .++ : )% (! : %! " 2222122122 2122112121 2212121112 2112111111 BABAC BABAC BABAC BABAC += += += += &! & &$ !$& nxn '$ / $ !,& ' & ,&. : &$&! 8 '$ / $ n/2 x n/2 ' & ,& 0 : & * $ !$& * $ ! ('$. 0 0 : 4 ' $ . " nx2 x nx2 ' & ,& / + & % , .& ' (2 +. $ " n, %&, 8 '$' $2 ! +. $ " n/2 &* 5, ! " % " ) (&$ (n2) '$ ' $ (! ! & : 6 2 ! , ). !$& ' $4 & +( $ 2222122122 BABAC += )(...)( 2 8)( 32 nn n TnT remMasterTheo Θ==Θ+= . , 1. 4. +( $" '$ ' $% ' & ,& Strassen 2 ' $ .++ (Strassen): (! '$ & ' !$ * $ '$!. ! " - " ' - ": &! " ))(( ))(( 21123 11112 1112221122211 BBAAM BAM BAM BBBAAAM −−= = = +−−+= 742121 652112 3211 MMMMC MMMMC MMMMC MMC +++= −++= +++= += )( )( ))(( 22221121126 111222215 BBBBAM BAAAAM BBAAM −−+= −+−= −+= &! & &$ !$& nxn '$ / $ !,& ' & ,&. : &$&! 7 '$ / $ n/2 x n/2 ' & ,& 0 : & * $ !$& * $ ! ('$. 0 0 : 24 ' $ 4 . " nx2 x nx2 ' & ,& / + & % , .& ' (2 +. $ " n, %&, 7 '$' $2 ! +. $ " n/2 &* 5, ! " % " ) (&$ (n2) '$ ' $ (! ! & : 0' )$ & ( %! " * ' " '$ 4! &$ & ! & '$ ' $ (! ! .) (n2,37). !( $ )% (! +( $" '$ / $ ' & ,& .) '$ ' $ (! ! (n2) ))(( 122221114 BBAAM −−= )(...)( 2 7)( 81,22 nn n TnT remMasterTheo Θ==Θ+= 542122 MMMMC +++=)( 21122211227 BBBBAM −−+= . " 4 $+ 1 " '$ . $ (! .)$ & ' .-$ & !$ " ( $ $ " ! " +( $ ": I. +( $" A %& ' $2 ! +. $ " n !$ & ' % & * $ $ !3 '$' $2 ! !$ $% +. $ " !$ .& , &* 5$&! " ! " % " !$ " + ( ) (&$ ," ' $" n. '! " II. +( $" B %& ' $2 ! +. $ " n !$ & ' % & * $ .& '$' (2 +. $ " n-1 , ! & &.) , & + ! & ! % ) (&$ O(n). III. +( $" %& ' $2 ! +. $ " n !$ & ' % & * $ && '$' $2 ! +. $ " n/3 &* 5$&! " ! " % " !$ " (n2) ) (&$. $ $ & $ '!,! $ ) (&$ !. " + .& '( !$ " ! " +$ $ " '$ $& '( !$%" * .+ ! 2 ! & '!,! !$ '$ ' $ (! ! ?
  8. 8. . " 4 $+ 2 " '$ . $ (! .)$ & ' .-$ & !$ " ( $ $ " ! " +( $ ": I. +( $" A %& ' $2 ! +. $ " n !$ & ' % & * $ .& '$' (2 , +. $ " 1/4 !$ ) $% ' $2 !$", &3 $ ) (&$" '$ ' ! ! + & 2 !$ ' (2 !( ( +. $ " n/4) '( !$ ) ( ( +. $ " n) & (! " ' (2 !( ( +. $ " n/4) '( !$ ) ( ( +. $ " n) & + (" ," ' $" n. II. +( $" B %& ' $2 ! +. $ " n !$ & ' % & * $ .& '$' (2 +. $ " n/2 , ! & &.) , & + ! & ! % (n3). III. +( $" %& ' $2 ! +. $ " n !$ & ' % & * $ !. '$' $2 ! +. $ " n/2 &* 5$&! " ! " % " !$ " O(n2) ) (&$. $ $ & $ '!,! $ ) (&$ !. " + .& '( !$ " ! " +$ $ " '$ $& '( !$%" * .+ ! 2 ! & '!,! !$ '$ ' $ (! ! ?

×