Advertisement
Advertisement

More Related Content

Slideshows for you(20)

Advertisement

More from Dimitris Psounis(20)

Advertisement

ΠΛΗ30 ΜΑΘΗΜΑ 2.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. 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. . , 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. . , 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. . , 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. . , 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. . , 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. . " 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 ! & '!,! !$ '$ ' $ (! ! ?
Advertisement