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.
ΠΛΗ20
ΕΝΟΤΗΤΑ 0: ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ
Μάθηµα 0.4:
Αναδροµικοί και Επαναληπτικοί ΑλγόριθµοιΑναδροµικοί και Επαναληπτικοί Αλγόριθµ...
ΠΕΡΙΕΧΟΜΕΝΑ
Α. Σκοπός του Μαθήµατος
Β.Θεωρία
1. Αλγόριθµοι
1. Ορισµός Αλγορίθµου
2. Χαρακτηριστικά Αλγορίθµου
3. Ψευδογλώσ...
Α. Σκοπός του Μαθήµατος
Επίπεδο Α
(-)
Επίπεδο Β
Στοιχειώδης κατανόηση ανάγνωσης ενός προγράµµατος σε ψευδογλώσσα.
Επίπεδο ...
Β. Θεωρία
1. Αλγόριθµος
1. Ορισµός Αλγορίθµου
• Αλγόριθµος είναι ένας επιλύτης ενός προβλήµατος. Είναι µία πεπερασµένη
ακο...
Β. Θεωρία
1. Αλγόριθµος
1. Ορισµός Αλγορίθµου
• Παράδειγµα: Ο ακόλουθος αλγόριθµος υπολογίζει τον µέγιστο µιας
ακολουθίας ...
Β. Θεωρία
1. Αλγόριθµος
1. Ορισµός Αλγορίθµου
Οι έννοιες πρόβληµα, αλγόριθµος και στιγµιότυπο στο παράδειγµα που
κατασκευά...
Β. Θεωρία
1. Αλγόριθµος
2. Χαρακτηριστικά Αλγορίθµου
Κατά D.Knuth (The Art of Computer Programming) ένας αλγόριθµος πρέπει...
Β. Θεωρία
1. Αλγόριθµος
3. Ψευδογλώσσα
Ένας αλγόριθµος θα διατυπώνεται στην ψευδογλώσσα:
• Η ψευδογλώσσα παρέχει όλες τις ...
Β. Θεωρία
1. Αλγόριθµος
3. Ψευδογλώσσα
Τα δοµικά στοιχεία που θα συναντήσουµε στην ψευδογλώσσα είναι τα
ακόλουθα:
• Ορισµό...
Β. Θεωρία
1. Αλγόριθµος
3. Ψευδογλώσσα
• ∆οµές Επανάληψης
• Επανάληψη while…end while
10∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4...
Β. Θεωρία
1. Αλγόριθµος
3. Ψευδογλώσσα
• Στα παραπάνω
• Εντολές είναι:
• Απλές εντολές π.χ. Εντολή Ανάθεσης: Θέσε x=5
• Σύ...
Β. Θεωρία
2. Αναδροµικοί Αλγόριθµοι
1. Ορισµός Αναδροµικού Αλγορίθµου
• Οι περισσότεροι αλγόριθµοι, χρησιµοποιούν σαν δοµι...
Β. Θεωρία
2. Αναδροµικοί Αλγόριθµοι
2. Παράδειγµα: Η ακολουθία Fibonacci
13∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί...
Β. Θεωρία
2. Αναδροµικοί Αλγόριθµοι
2. Παράδειγµα: Η ακολουθία Fibonacci
14∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί...
Β. Θεωρία
2. Αναδροµικοί Αλγόριθµοι
2. Παράδειγµα: Η ακολουθία Fibonacci
15∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί...
Β. Θεωρία
2. Αναδροµικοί Αλγόριθµοι
2. Παράδειγµα: Η ακολουθία Fibonacci
16∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί...
Β. Θεωρία
2. Αναδροµικοί Αλγόριθµοι
3. Παράδειγµα: Υπολογισµός Παραγοντικού
17∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµι...
Β. Θεωρία
2. Αναδροµικοί Αλγόριθµοι
3. Παράδειγµα: Υπολογισµός Παραγοντικού
18∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµι...
Β. Θεωρία
2. Αναδροµικοί Αλγόριθµοι
3. Παράδειγµα: Υπολογισµός Παραγοντικού
19∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµι...
Β. Θεωρία
2. Αναδροµικοί Αλγόριθµοι
3. Παράδειγµα: Υπολογισµός Παραγοντικού
20∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµι...
Γ. Ασκήσεις
Εφαρµογή 1
21∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι
∆ίνεται ο παρακάτω α...
22∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι
∆ίνεται ο παρακάτω αναδροµικός αλγόριθµος:
...
Upcoming SlideShare
Loading in …5
×

of

ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 1 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 2 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 3 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 4 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 5 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 6 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 7 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 8 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 9 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 10 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 11 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 12 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 13 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 14 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 15 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 16 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 17 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 18 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 19 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 20 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 21 ΠΛΗ20 ΜΑΘΗΜΑ 0.4 Slide 22
Upcoming SlideShare
ΠΛΗ20 ΜΑΘΗΜΑ 5.4
Next
Download to read offline and view in fullscreen.

1 Like

Share

Download to read offline

ΠΛΗ20 ΜΑΘΗΜΑ 0.4

Download to read offline

1) Αλγόριθμοι
1.1) Ορισμός Αλγορίθμου
1.2) Χαρακτηριστικά Αλγορίθμου
1.3) Ψευδογλώσσα
2) Αναδρομικοί Αλγόριθμοι
2.1) Ορισμός Αναδρομικού Αλγορίθμου
2.2) Παράδειγμα: Η ακολουθία Fibonacci
2.3) Παράδειγμα: Υπολογισμός Παραγοντικού

Related Audiobooks

Free with a 30 day trial from Scribd

See all

ΠΛΗ20 ΜΑΘΗΜΑ 0.4

  1. 1. ΠΛΗ20 ΕΝΟΤΗΤΑ 0: ΠΡΟΑΠΑΙΤΟΥΜΕΝΑ Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί ΑλγόριθµοιΑναδροµικοί και Επαναληπτικοί Αλγόριθµοι ∆ηµήτρης Ψούνης
  2. 2. ΠΕΡΙΕΧΟΜΕΝΑ Α. Σκοπός του Μαθήµατος Β.Θεωρία 1. Αλγόριθµοι 1. Ορισµός Αλγορίθµου 2. Χαρακτηριστικά Αλγορίθµου 3. Ψευδογλώσσα 2. Αναδροµικοί Αλγόριθµοι 2∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι 2. Αναδροµικοί Αλγόριθµοι 1. Ορισµός Αναδροµικού Αλγορίθµου 2. Παράδειγµα: Η ακολουθία Fibonacci 3. Παράδειγµα: Υπολογισµός Παραγοντικού Γ.Ασκήσεις
  3. 3. Α. Σκοπός του Μαθήµατος Επίπεδο Α (-) Επίπεδο Β Στοιχειώδης κατανόηση ανάγνωσης ενός προγράµµατος σε ψευδογλώσσα. Επίπεδο Γ Γνώση του τρόπου εκτέλεσης µίας αναδροµικής διαδικασίας. 3∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι Γνώση του τρόπου εκτέλεσης µίας αναδροµικής διαδικασίας.
  4. 4. Β. Θεωρία 1. Αλγόριθµος 1. Ορισµός Αλγορίθµου • Αλγόριθµος είναι ένας επιλύτης ενός προβλήµατος. Είναι µία πεπερασµένη ακολουθίας σαφώς καθορισµένων βηµάτων που παίρνει ως είσοδο ένα στιγµιότυπο του προβλήµατος και παράγει την λύση του στιγµιοτύπου • Ένα πρόβληµα µπορεί να λύνεται από διαφορετικούς αλγόριθµους. Για 4∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι • Ένα πρόβληµα µπορεί να λύνεται από διαφορετικούς αλγόριθµους. Για παράδειγµα: • Το πρόβληµα της εύρεσης ενός στοιχείου σε έναν πίνακα, λύνεται µε την σειριακή αναζήτηση, αλλά και την δυαδική αναζήτηση. • Το πρόβληµα της ταξινόµησης µιας ακολουθίας αριθµών, λύνεται µε τον αλγόριθµο φυσαλίδας, τον αλγόριθµο γρήγορης ταξινόµησης κ.α. • Το πρόβληµα της έυρεσης του Μ.Κ.∆. ενός αριθµού λύνεται π.χ. µε τον αλγόριθµο του Ευκλείδη.
  5. 5. Β. Θεωρία 1. Αλγόριθµος 1. Ορισµός Αλγορίθµου • Παράδειγµα: Ο ακόλουθος αλγόριθµος υπολογίζει τον µέγιστο µιας ακολουθίας αριθµών 5∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι Αλγόριθµος Εύρεσης Μεγίστου Ακολουθίας Είσοδος: Ακολουθία Αριθµών A=a1,a2,…,an Έξοδος: Ο µέγιστος αριθµός της ακολουθίας AΈξοδος: Ο µέγιστος αριθµός της ακολουθίας A --------------------------------------------------------------- procedure maximum(A) m=a1 for i=2 to n do if (ai>m) then m=ai end if end for return m end maximum
  6. 6. Β. Θεωρία 1. Αλγόριθµος 1. Ορισµός Αλγορίθµου Οι έννοιες πρόβληµα, αλγόριθµος και στιγµιότυπο στο παράδειγµα που κατασκευάσαµε • Το πρόβληµα: Να βρεθεί το µέγιστο µιας ακολουθίας αριθµών • Ο αλγόριθµος: ∆ιέτρεξε την ακολουθία διατηρώντας στην µνήµη τον 6∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι • Ο αλγόριθµος: ∆ιέτρεξε την ακολουθία διατηρώντας στην µνήµη τον τρέχων µέγιστο αριθµό. • Η διατύπωση του αλγορίθµου γίνεται στην ψευδογλώσσα • Το στιγµιότυπο. Π.χ. • [1,2,8,4,3,0] • [6,3,10,4,2,8,11] • [-12,44,1002,9499,994]
  7. 7. Β. Θεωρία 1. Αλγόριθµος 2. Χαρακτηριστικά Αλγορίθµου Κατά D.Knuth (The Art of Computer Programming) ένας αλγόριθµος πρέπει να χαρακτηρίζεται από τα εξής: • Ακρίβεια: Τα βήµατα πρέπει να είναι σαφή. • Μοναδικότητα: Τα ενδιάµεσα αποτελέσµατα είναι µοναδικά για κάθε είσοδο (δεν µπορεί να προκύψουν διαφορετικά ενδιάµεσα αποτελέσµατα για την 7∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι (δεν µπορεί να προκύψουν διαφορετικά ενδιάµεσα αποτελέσµατα για την ίδια είσοδο) • Αριθµός Βηµάτων: Πρέπει να είναι πεπερασµένα. ∆ηλαδή πρέπει ο αλγόριθµος κάποια στιγµή να τελειώνει, µετά από πεπερασµένο αριθµό βηµάτων. • Γενικότητα: Ο αλγόριθµος πρέπει να λειτουργεί για όλες τις εισόδους ενός συγκεκριµένου τύπου. • Είσοδος-Έξοδος: Ο αλγόριθµος πρέπει να παίρνει κάποια είσοδο και να παράγει µία µοναδική έξοδο για κάθε είσοδο.
  8. 8. Β. Θεωρία 1. Αλγόριθµος 3. Ψευδογλώσσα Ένας αλγόριθµος θα διατυπώνεται στην ψευδογλώσσα: • Η ψευδογλώσσα παρέχει όλες τις προγραµµατιστικές ευκολίες που παρέχει µία συναρτησιακή γλώσσα προγραµµατισµού (όπως π.χ. η C ή η Pascal αλλά σε ένα υψηλότερο επίπεδο αφαίρεσης 8∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι αλλά σε ένα υψηλότερο επίπεδο αφαίρεσης • ∆ηλαδή δεν µας ενδιαφέρουν οι τεχνικές λεπτοµέρειες της υλοποίησης σε κάποια πραγµατική γλώσσα προγραµµατισµού, αλλά η ουσία των εντολών • ∆εν γινόµαστε δηλαδή «αφόρητα» τυπικοί όσον αφορά τη λεπτοµέρεια της υλοποίησης.
  9. 9. Β. Θεωρία 1. Αλγόριθµος 3. Ψευδογλώσσα Τα δοµικά στοιχεία που θα συναντήσουµε στην ψευδογλώσσα είναι τα ακόλουθα: • Ορισµός διαδικασίας: 9∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι procedure Ονοµα-∆ιαδικασίας(ορίσµατα) • ∆οµή Συνθήκης ή procedure Ονοµα-∆ιαδικασίας(ορίσµατα) … Εντολές … end όνοµα-διαδικασίας if (συνθήκη) then … Εντολές … end if if (συνθήκη) then …Εντολές… else …Εντολές… end if
  10. 10. Β. Θεωρία 1. Αλγόριθµος 3. Ψευδογλώσσα • ∆οµές Επανάληψης • Επανάληψη while…end while 10∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι while(συνθήκη) then …Εντολές… end while • Επανάληψη repeat…until • Επανάληψη for..end for end while repeat …Εντολές… until(συνθήκη) for µεταβλητή=αρχ.τιµή to τελ.τιµή do …Εντολές… end for
  11. 11. Β. Θεωρία 1. Αλγόριθµος 3. Ψευδογλώσσα • Στα παραπάνω • Εντολές είναι: • Απλές εντολές π.χ. Εντολή Ανάθεσης: Θέσε x=5 • Σύνθετες Εντολές π.χ. • Θέσε x=ο αριθµός των γειτόνων της κορυφής v 11∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι • Θέσε x=ο αριθµός των γειτόνων της κορυφής v • Θέσε x1,x2= οι ρίζες µιας δευτεροβάθµια εξίσωσης. • Συνθήκες είναι • Απλές Συνθήκες π.χ. (x>1) • Σύνθετες Συνθήκε π.χ. (x==1 και το z είναι άρτιος αριθµός)
  12. 12. Β. Θεωρία 2. Αναδροµικοί Αλγόριθµοι 1. Ορισµός Αναδροµικού Αλγορίθµου • Οι περισσότεροι αλγόριθµοι, χρησιµοποιούν σαν δοµικά στοιχεία τους την επανάληψη και την συνθήκη: • Χαρακτηρίζονται ως επαναληπτικοί ή διαδικαστικοί αλγόριθµοι • Αντίθετα αν µια διαδικασία κατά τη διάρκεια εκτέλεσής της καλεί τον εαυτό 12∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι • Αντίθετα αν µια διαδικασία κατά τη διάρκεια εκτέλεσής της καλεί τον εαυτό της, τότε λέγεται αναδροµική διαδικασία. • Ένας αλγόριθµος που υλοποιείται από µία αναδροµική διαδικασία, θα λέγεται αναδροµικός αλγόριθµος.
  13. 13. Β. Θεωρία 2. Αναδροµικοί Αλγόριθµοι 2. Παράδειγµα: Η ακολουθία Fibonacci 13∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι ΠΡΟΒΛΗΜΑ: ∆ίνεται ένας φυσικός αριθµός n. Να υπολογιστεί ο n-ός αριθµός Fibonacci. Υπενθύµιση: Οι δύο πρώτοι αριθµοί Fibonacci είναι 1 και κάθε επόµενος αριθµός Fibonacci, ορίζεται ως το άθροισµα των δύο προηγουµένων αριθµών Fibonacci: Και τυπικά η ακολουθία ορίζεται µέσω της αναδροµικής σχέσης: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 … 1 1 2 3 5 8 13 21 34 55 89 144 233 377 …    >+ == = −− 2, 21,1 21 nff nήn f nn n
  14. 14. Β. Θεωρία 2. Αναδροµικοί Αλγόριθµοι 2. Παράδειγµα: Η ακολουθία Fibonacci 14∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι Ένας αναδροµικός αλγόριθµος που υλοποιεί την παραπάνω διαδικασία είναι ο εξής: Αλγόριθµος Εύρεσης n-οστού αριθµού Fibonacci Είσοδος: Φυσικός Αριθµός n Έξοδος: Η τιµή του n-οστού αριθµού Fibonacci. --------------------------------------------------------------- Ο αλγόριθµος είναι αναδροµικός. Για τον υπολογισµό γίνεται κλήση της ίδιας διαδικασίας. --------------------------------------------------------------- procedure FibRec(n) if n=1 or n=2 then return 1 else a=FibRec(n-1) b=FibRec(n-2) c=a+b return c end if end procedure
  15. 15. Β. Θεωρία 2. Αναδροµικοί Αλγόριθµοι 2. Παράδειγµα: Η ακολουθία Fibonacci 15∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι Είναι πολύ αργός αλγόριθµος!! Λόγω του τρόπου εκτέλεσης της αναδροµικής διαδικασίας. Π.χ. για n=6: )6(fib )5(fib )4(fib )3(fib )3(fib )2(fib )2(fib )1(fib )2(fib )1(fib )4(fib )3(fib )2(fib )2(fib )1(fib
  16. 16. Β. Θεωρία 2. Αναδροµικοί Αλγόριθµοι 2. Παράδειγµα: Η ακολουθία Fibonacci 16∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι Παρατηρούµε ότι ο αναδροµικός αλγόριθµος είναι πολύ χρονοβόρος, διότι: Γίνεται πολλές φορές υπολογισµός του ίδιου αριθµού Π.χ. γίνεται δύο φορές κλήση της fibRec(4) Ο ακόλουθος αλγόριθµος υπολογίζει τον n-οστό αριθµό Fibonacci επαναληπτικά: Είναι αποδοτικότερος! Κάθε τιµή υπολογίζεται µία φορά! Αλγόριθµος Εύρεσης n-οστού αριθµού Fibonacci Είσοδος: Φυσικός Αριθµός n Έξοδος: Η τιµή του n-οστού αριθµού Fibonacci. --------------------------------------------------------------- procedure FibSeq(n) A[1]=1 A[2]=1 for i=3 to n A[i]=A[i-1]+A[i-2] end for return A[n] end procedure
  17. 17. Β. Θεωρία 2. Αναδροµικοί Αλγόριθµοι 3. Παράδειγµα: Υπολογισµός Παραγοντικού 17∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι    >−⋅ = = 1,)!1( 1,1 ! nnn n n
  18. 18. Β. Θεωρία 2. Αναδροµικοί Αλγόριθµοι 3. Παράδειγµα: Υπολογισµός Παραγοντικού 18∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι Ένας αναδροµικός αλγόριθµος που υλοποιεί την παραπάνω διαδικασία είναι ο εξής: Αλγόριθµος Εύρεσης Παραγοντικού Είσοδος: Φυσικός Αριθµός n Έξοδος: Η τιµή του n! --------------------------------------------------------------- Ο αλγόριθµος είναι αναδροµικός. Για τον υπολογισµό γίνεται κλήση της ίδιας διαδικασίας. --------------------------------------------------------------- procedure FactRec(n) if n=1 then return 1 else a=FactRec(n-1) c=n*a return c end if end procedure
  19. 19. Β. Θεωρία 2. Αναδροµικοί Αλγόριθµοι 3. Παράδειγµα: Υπολογισµός Παραγοντικού 19∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι Είναι ικανοποιητικός αλγόριθµος: Λόγω του τρόπου εκτέλεσης της αναδροµικής διαδικασίας, όπου εδώ κάθε κλήση γίνεται 1 φορά: )5(fact )4(fact )3(fact )2(fact )1(fact
  20. 20. Β. Θεωρία 2. Αναδροµικοί Αλγόριθµοι 3. Παράδειγµα: Υπολογισµός Παραγοντικού 20∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι Γενικά ένας αλγόριθµος που υλοποιείται από µία αναδροµική διαδικασία, µπορεί να υλοποιηθεί και από επαναληπτικό αλγόριθµο. Η κατασκευή αναδροµικών αλγορίθµων απαιτεί εµπειρία (βλέπε ΠΛΗ30) Ας ρίξουµε µια µατιά και σε µια υλοποίηση µε επαναληπτικό αλγόριθµο της παραπάνω διαδικασίας: Αλγόριθµος Εύρεσης n-οστού αριθµού Fibonacci Είσοδος: Φυσικός Αριθµός n Έξοδος: Η τιµή του n-οστού αριθµού Fibonacci. --------------------------------------------------------------- procedure FactSeq(n) A[1]=1 for i=2 to n A[i]=i*A[i-1] end for return A[n] end procedure
  21. 21. Γ. Ασκήσεις Εφαρµογή 1 21∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι ∆ίνεται ο παρακάτω αναδροµικός αλγόριθµος: procedure rec(A, left, right) if left = right then return(A[left]); x := rec(A, left+1, right); if A[left] ≤ x then≤ result:= A[left]; else result:= x; return(result); end procedure Η διαδικασία rec(A, left, right) δέχεται ως παραµέτρους τον πίνακα ακεραίων A και τους φυσικούς αριθµούς left και right. Υποθέτουµε ότι ισχύει πάντοτε ότι left ≤ right. Αν ο πίνακας Α έχει n στοιχεία, η αρχική κλήση είναι rec(A, 1, n). Ο συµβολισµός A[left] δηλώνει το στοιχείο του πίνακα A στη θέση left. Έστω ότι Α = [6, 1, 3, 2, 7, 3, 5, 12, 2, 8 ]. Να εκτελεστούν όλα τα βήµατα της κλήσης rec(A, 1, 10) µε είσοδο τον πίνακα Α και να βρεθεί τι κάνει η διαδικασία rec.
  22. 22. 22∆ηµήτρης Ψούνης, ΠΛΗ20, Μάθηµα 0.4: Αναδροµικοί και Επαναληπτικοί Αλγόριθµοι ∆ίνεται ο παρακάτω αναδροµικός αλγόριθµος: procedure fun(A, left, right, k) if left ≥ right then if k = A[left] then return(1); else return(0); mid := [(left + right) / 2]; x := fun(A, left, mid, k); Γ. Ασκήσεις Εφαρµογή 2 x := fun(A, left, mid, k); y := fun(A, mid+1, right, k); return(x + y); Η διαδικασία fun(A, left, right, k) δέχεται σαν είσοδο τον πίνακα ακεραίων A και τις ακέραιες µεταβλητές left, right και k, και επιστρέφει σαν έξοδο έναν ακέραιο αριθµό. Αν ο πίνακας Α έχει n στοιχεία, η αρχική κλήση είναι fun (A, 1, n, k). Ο συµβολισµός A[left] δηλώνει το στοιχείο του πίνακα A στη θέση left. Η παράσταση [(left + right) / 2] δηλώνει το κάτω ακέραιο µέρος της διαίρεσης, π.χ. [(1+8) / 2] = 4. Ποια λειτουργία επιτελεί η διαδικασία fun(Α, 1, n, k) (δηλαδή, ποια είναι η ιδιότητα της τιµής που επιστρέφει η fun σε σχέση µε τα στοιχεία του πίνακα A και τον αριθµό k); Επαληθεύστε το µε την εκτέλεση: fun([1 2 8 4 3 2 8 4 2 3], 1, 10, 2)
  • di8enaiwra

    May. 29, 2020

1) Αλγόριθμοι 1.1) Ορισμός Αλγορίθμου 1.2) Χαρακτηριστικά Αλγορίθμου 1.3) Ψευδογλώσσα 2) Αναδρομικοί Αλγόριθμοι 2.1) Ορισμός Αναδρομικού Αλγορίθμου 2.2) Παράδειγμα: Η ακολουθία Fibonacci 2.3) Παράδειγμα: Υπολογισμός Παραγοντικού

Views

Total views

822

On Slideshare

0

From embeds

0

Number of embeds

6

Actions

Downloads

110

Shares

0

Comments

0

Likes

1

×