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 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4

8,052 views

Published on

Δυαδική Αναζήτηση (Binary Search)
Ταξινόμηση με Συγχώνευση (Merge Sort)
Θέωρημα Κυριαρχίας (Master Theorem)
Μεθοδος Επανάληψης T(n)=aT(n/b)+f(n)

Published in: Education
  • Be the first to comment

  • Be the first to like this

ΠΛΗ30 ΚΑΡΤΑ ΜΑΘΗΜΑ 1.4

  1. 1. ΠΟΛΥΠΛΟΚΟΤΗΤΑ: Στην χειρότερη περίπτωση, µία αναδροµική κλήση για τα «µισά» δεδοµένα, άρα: Καλύτερη Περίπτωση: Θ(1) Β΄Θεωρηµα Κυριαρχίας ΠΑΡΑ∆ΕΙΓΜΑ ΕΚΤΕΛΕΣΗΣ: ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΒINARY SEARCH (ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ) ΨΕΥ∆ΟΚΩ∆ΙΚΑΣ (αναδροµική υλοποίηση) procedure BinarySearch(A,x,start,finish) if start>finish then return 0 else middle=(start+finish) div 2 if (x==A[middle]) then return middle else if (x<A[middle]) then pos=BinarySearch(A,x,start,middle-1) return pos else if (x>A[middle]) then pos=BinarySearch(A,x,middle+1,finish) return pos end if end if end procedure ΕΙΣΟ∆ΟΣ: Ταξινοµηµένος Πίνακας Α, Στοιχείο x ΕΞΟ∆ΟΣ: Αν το στοιχείο υπάρχει στον πίνακα: • Επιστρέφεται η θέση του. Αν το στοιχείο δεν υπάρχει στον πίνακα: • Επιστρέφεται 0 ΑΛΓΟΡΙΘΜΙΚΗ Ι∆ΕΑ: Εξετάζεται το µεσαίο στοιχείο: Αν x = µεσαίο, επιστρέφεται η θέση. Αν x < µεσαίο, ψάχνουµε στο αριστερό µισό του πίνακα Αν x > µεσαίο, ψάχνουµε στο δεξί µισό του πίνακα 2 Θ 1 Θ log n….
  2. 2. ΠΟΛΥΠΛΟΚΟΤΗΤΑ: Γίνονται δύο αναδροµικές κλήσεις για τα µισα δεδο- µένα. Ο χρόνος της συγχώνευσης (merge) είναι Θ(n). Β΄Θεωρηµα Κυριαρχίας ΜΕΡΟΣ ΕΚΤΕΛΕΣΗΣ: Ανάπτυξη Υποπινάκων: Συγχώνευση Υποπινάκων: ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝMERGESORT (ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ) ΨΕΥ∆ΟΚΩ∆ΙΚΑΣ procedure MergeSort(A,start, finish) if |A|<=2 then Ταξινόµησε τον Α else middle=(start+finish) div 2 A1=MergeSort(A,start,middle) A2=MergeSort(A,middle+1,finish) A=Merge(A1,A2) end if end procedure ΕΙΣΟ∆ΟΣ: Πίνακας Στοιχείων ΕΞΟ∆ΟΣ: Ταξινοµηµένος (σε αύξουσα σειρά) πίνακας ΑΛΓΟΡΙΘΜΙΚΗ Ι∆ΕΑ: Αναδροµικά: Ταξινόµησε τον Αριστερό Υποπίνακα Ταξινόµησε τον ∆εξιό Υποπίνακα Συγχώνευσε τους δύο σε έναν ενιαίο πίνακα 2 2 Θ n Θ nlog n…. procedure Merge(A,Β) i=1, j=1, k=1 while (i<=n AND j<=m) if (ai<bj) then ck=ai ; i=i+1 else ck=bj ; j=j+1 k=k+1 end while Όσα στοιχεία του Α ή του B περίσσεψαν τα βάζουµε στο τέλος του C return C end procedure
  3. 3. ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΘΕΩΡΗΜΑ ΚΥΡΙΑΡΧΙΑΣ (MASTER THEOREM) Το Θεώρηµα Κυριαρχίας: Έστω η αναδροµική εξίσωση όπου a≥1, b>1 είναι σταθερές, και είναι µια ασυµπτωτικά θετική συνάρτηση. Τότε διακρίνονται οι ακόλουθες τρεις περιπτώσεις: Α) Αν για κάποια σταθερά ε>0, τότε: !" Β) Αν τότε: !" !" Γ) Αν # $ για κάποια σταθερά ε>0 και % & για κάποια σταθερά c<1, τότε: Έχω: Ισχύει: για κάποια σταθερά ε>0 Άρα από την Α’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι: n n TnT +      = 2 8)( 38loglog,)(,2,8 2 ===== annfba b )()( 3 ε− == nOnnf )()( 3 nnT Θ= Έχω: Ισχύει: Άρα από την B’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι: 2 3 9)( n n TnT +      = 29loglog,)(,3,9 3 2 ===== annfba b )()( 22 nnnf Θ== )log()( 2 nnnT Θ= Έχω: Ισχύει: για κάποια σταθερά ε>0 Ελέγχω αν υπάρχει c<1 τέτοιο ώστε: Άρα ισχύει για ½≤c<1. Άρα από την Γ’ περίπτωση του Θεωρήµατος Κυριαρχίας έπεται ότι: 3 2 4)( n n TnT +      = 24loglog,)(,2,4 2 3 ===== annfba b )()( 23 ε+ Ω== nnnf cccn n cn n ncf n fncf b n af ≤⇔≤⇔≤⇔≤      ⇔≤      ⇔≤      2 1 8 4 2 4 2 4)( 2 4)( 3 3 3 3 3 )()( 3 nnT Θ= Σύγκριση: ? 1234 5 6 Α’ΘΚ Β’ΘΚ 7 Γ’ΘΚ Παραδείγµατα:
  4. 4. ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝΜΕΘΟΔΟΣ ΕΠΑΝΑΛΗΨΗΣ Παράδειγµα: Να λύσετε την αναδροµή: Τ 9 3 ; < = 7 1 0 1 Λύση: Τ 3 ; < = 3 3 ; <? ; < = = 3= ; <? 3 ; < = = 3= 3 ; <@ ; <? = 3 ; < = = 3A ; <@ 3= ; <? = 3 ; < = = ⋯ 3C ; <D 3C E ; <DFG = ⋯ 3= ; <? = 3 ; < = = Η αναδροµή σταµατά όταν ; <D 1 ⇒ n 4C ⇒ k log< 3KLMN ; ; <OPQN R 3KLMN ; E ; <OPQN RFG = ⋯ 3= ; <? = 3 ; < = = 3KLMN ; 1 3KLMN ; E ; <OPQN RFG = ⋯ 3= ; <? = 3 ; < = = ∑ 3T ; <U =KLMN ; E TVW ∑ 3T ;? <U ? KLMN ; E TVW = ∑ AU <? U KLMN ; E TVW = ∑ AU EXU KLMN ; E TVW = ∑ A EX TKLMN ; E TVW = @ GY OPQN R E @ GY E Θ = 1. Κάνουµε 3 εφαρµογές της αναδροµικής σχέσης (µέχρι να φτάσουµε στη µορφή: Τ n ZA ; [@ ). Χρήσιµο το πρόχειρο 2. Εκτίµηση της σειράς που προκύπτει µετά από k επαναλήψεις (µας καθοδηγεί ο όρος: ; [D ) 3. Υπολογίζουµε πότε σταµατάει η αναδροµή (Θέτουµε ; [D W και λύνουµε ως προς k). Π.χ. αν W 1, τότε k log[ 4. Αντικατάσταση του k στον τύπο του βήµατος 2 5. Υπολογισµός της σειράς που προκύπτει. Χρήσιµος ο τύπος: ∑ T; TVW ]R^G E ] E Η µέθοδος της επανάληψης χρησιµοποιείται για την επίλυση της αναδροµικής σχέσης _ `a , 7 c &, c • Όταν το ζητάει ρητά η εκφώνηση • Όταν αποτυγχάνει το θεώρηµα κυριαρχίας • Όταν δεν θέλουµε απλά µία ασυµπτωτική εκτίµηση Τ 3 ; < = ; < 3 ; <? ; < = ; <? 3 ; <@ ; <? = Πρόχειρο: 0

×