Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

Save this PDF as:
 WORD  PNG  TXT  JPG

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2"

Transcript

1 Διαίρει-και-Βασίλευε Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

2 Διαίρει-και-Βασίλευε Γενική µέθοδος σχεδιασµού αλγορίθµων: Διαίρεση σε ( 2) υποπροβλήµατα (σηµαντικά) µικρότερου µεγέθους. Ανεξάρτητη επίλυση υπο-προβληµάτων (αναδροµικά) (για µικρά υποπροβλήµατα εφαρµόζονται στοιχειώδεις αλγόριθµοι). Σύνθεση λύσης αρχικού προβλήµατος από λύσεις υποπροβληµάτων. Ισχυρή µέθοδος, µε πολλές σηµαντικές εφαρµογές! Ταξινόµηση: MergeSort, QuickSort. Πολλαπλασιασµός αριθµών, πινάκων, FFT. «Εκλέπτυνση»: Δυαδική αναζήτηση, QuickSelect, ύψωση σε δύναµη. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

3 Διαίρει-και-Βασίλευε Γενική µέθοδος σχεδιασµού αλγορίθµων: Διαίρεση σε ( 2) υποπροβλήµατα (σηµαντικά) µικρότερου µεγέθους. Ανεξάρτητη επίλυση υπο-προβληµάτων (αναδροµικά) (για µικρά υποπροβλήµατα εφαρµόζονται στοιχειώδεις αλγόριθµοι). Σύνθεση λύσης αρχικού προβλήµατος από λύσεις υποπροβληµάτων. Ισχυρή µέθοδος, µε πολλές σηµαντικές εφαρµογές! Ταξινόµηση: MergeSort, QuickSort. Πολλαπλασιασµός αριθµών, πινάκων, FFT. «Εκλέπτυνση»: Δυαδική αναζήτηση, QuickSelect, ύψωση σε δύναµη. (Εύκολη) ανάλυση µε αναδροµικές σχέσεις. Μη γραµµικές, συγκεκριµένης µορφής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

4 Πρόβληµα Ταξινόµησης Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 3

5 Πρόβληµα Ταξινόµησης Πρόβληµα Ταξινόµησης: Είσοδος : ακολουθία n αριθµών (α 1, α 2,..., α n ). Έξοδος : αναδιάταξη (α 1, α 2,..., α n ) µε αριθµούς σε αύξουσα σειρά ( i α i α i+1 ). Στατική συλλογή δεδοµένων (όχι εισαγωγή και διαγραφή). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 3

6 Πρόβληµα Ταξινόµησης Πρόβληµα Ταξινόµησης: Είσοδος : ακολουθία n αριθµών (α 1, α 2,..., α n ). Έξοδος : αναδιάταξη (α 1, α 2,..., α n ) µε αριθµούς σε αύξουσα σειρά ( i α i α i+1 ). Στατική συλλογή δεδοµένων (όχι εισαγωγή και διαγραφή). Θεµελιώδες αλγοριθµικό πρόβληµα. Πολλές εφαρµογές (περ. 25% υπολογιστικού χρόνου). Ταχύτατη αναζήτηση σε ταξινοµηµένα δεδοµένα. Σηµαντικές αλγοριθµικές ιδέες και τεχνικές. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 3

7 Μέθοδοι Ταξινόµησης Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 4

8 Μέθοδοι Ταξινόµησης Αντιµετάθεση κάθε ζεύγους στοιχείων εκτός διάταξης (bubble sort). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 4

9 Μέθοδοι Ταξινόµησης Αντιµετάθεση κάθε ζεύγους στοιχείων εκτός διάταξης (bubble sort). Εισαγωγή στοιχείου σε κατάλληλη θέση ταξινοµηµένου πίνακα (insertion sort). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 4

10 Μέθοδοι Ταξινόµησης Αντιµετάθεση κάθε ζεύγους στοιχείων εκτός διάταξης (bubble sort). Εισαγωγή στοιχείου σε κατάλληλη θέση ταξινοµηµένου πίνακα (insertion sort). Επιλογή µεγαλύτερου στοιχείου και τοποθέτηση στο τέλος (selection sort, heapsort). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 4

11 Μέθοδοι Ταξινόµησης Αντιµετάθεση κάθε ζεύγους στοιχείων εκτός διάταξης (bubble sort). Εισαγωγή στοιχείου σε κατάλληλη θέση ταξινοµηµένου πίνακα (insertion sort). Επιλογή µεγαλύτερου στοιχείου και τοποθέτηση στο τέλος (selection sort, heapsort). Συγχώνευση ταξινοµηµένων πινάκων : Διαίρεση στη µέση, ταξινόµηση, συγχώνευση (mergesort). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 4

12 Μέθοδοι Ταξινόµησης Αντιµετάθεση κάθε ζεύγους στοιχείων εκτός διάταξης (bubble sort). Εισαγωγή στοιχείου σε κατάλληλη θέση ταξινοµηµένου πίνακα (insertion sort). Επιλογή µεγαλύτερου στοιχείου και τοποθέτηση στο τέλος (selection sort, heapsort). Συγχώνευση ταξινοµηµένων πινάκων : Διαίρεση στη µέση, ταξινόµηση, συγχώνευση (mergesort). Διαίρεση σε µικρότερα και µεγαλύτερα από στοιχείο-διαχωρισµού και ταξινόµηση (quicksort). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 4

13 Συγκριτικοί Αλγόριθµοι Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 5

14 Συγκριτικοί Αλγόριθµοι Ταξινόµηση αποκλειστικά µε συγκρίσεις και αντιµεταθέσεις στοιχείων. Δεν εκµεταλλεύονται τύπο δεδοµένων (π.χ. αριθµούς, συµβολοσειρές) : γενική εφαρµογή. Ανάλυση : πλήθος συγκρίσεων. πλήθος αντιµεταθέσεων. Κάτω φράγµα #συγκρίσεων : Ω(n log n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 5

15 Συγκριτικοί Αλγόριθµοι Ταξινόµηση αποκλειστικά µε συγκρίσεις και αντιµεταθέσεις στοιχείων. Δεν εκµεταλλεύονται τύπο δεδοµένων (π.χ. αριθµούς, συµβολοσειρές) : γενική εφαρµογή. Ανάλυση : πλήθος συγκρίσεων. πλήθος αντιµεταθέσεων. Κάτω φράγµα #συγκρίσεων : Ω(n log n). Ταξινόµηση (µε αλγόριθµους που δεν είναι συγκριτικοί) σε χρόνο Θ( n + k ) για n φυσικούς αριθµούς στο { 1,..., k } (π.χ. bin sort, radix sort). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 5

16 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 6

17 MergeSort MergeSort (ταξινόµηση µε συγχώνευση): Διαίρεση ακολουθίας εισόδου (n στοιχεία) σε δύο υπο-ακολουθίες ίδιου µήκους (n / 2 στοιχεία). Ταξινόµηση υπο-ακολουθιών αναδροµικά. Συγχώνευση (merge) δύο ταξινοµηµένων υπο-ακολουθιών σε µία ταξινοµηµένη ακολουθία. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 6

18 MergeSort MergeSort (ταξινόµηση µε συγχώνευση): Διαίρεση ακολουθίας εισόδου (n στοιχεία) σε δύο υπο-ακολουθίες ίδιου µήκους (n / 2 στοιχεία). Ταξινόµηση υπο-ακολουθιών αναδροµικά. Συγχώνευση (merge) δύο ταξινοµηµένων υπο-ακολουθιών σε µία ταξινοµηµένη ακολουθία. mergesort(int A[], int left, int right) { if (left >= right) return; mid = (left + right) / 2; mergesort(a, left, mid); mergesort(a, mid+1, right); merge(a, left, mid, right); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 6

19 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

20 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

21 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

22 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

23 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

24 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

25 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

26 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

27 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

28 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

29 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

30 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

31 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

32 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

33 MergeSort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 7

34 Συγχώνευση Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

35 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[left...mid] και A[mid +1...right] σε ταξινοµηµένο A[left...right]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

36 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[left...mid] και A[mid +1...right] σε ταξινοµηµένο A[left...right]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

37 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[left...mid] και A[mid +1...right] σε ταξινοµηµένο A[left...right]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

38 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[left...mid] και A[mid +1...right] σε ταξινοµηµένο A[left...right]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

39 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[left...mid] και A[mid +1...right] σε ταξινοµηµένο A[left...right]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

40 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[left...mid] και A[mid +1...right] σε ταξινοµηµένο A[left...right]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

41 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[left...mid] και A[mid +1...right] σε ταξινοµηµένο A[left...right]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

42 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[left...mid] και A[mid +1...right] σε ταξινοµηµένο A[left...right]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

43 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[left...mid] και A[mid +1...right] σε ταξινοµηµένο A[left...right]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 8

44 Συγχώνευση Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 9

45 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[low...mid] και A[mid+1...up] σε ταξινοµηµένο A[low...up]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 9

46 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[low...mid] και A[mid+1...up] σε ταξινοµηµένο A[low...up]. X[up low+1] A[low...up]; // προσωρινή αποθήκευση i : 0 <= i <= xmid // δείκτης αριστερό τµήµα j : xmid+1 <= j <= xup // δείκτης δεξιό τµήµα k : low <= k <= up // δείκτης στο συγχωνευµένο πίνακα Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 9

47 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[low...mid] και A[mid+1...up] σε ταξινοµηµένο A[low...up]. X[up low+1] A[low...up]; // προσωρινή αποθήκευση i : 0 <= i <= xmid // δείκτης αριστερό τµήµα j : xmid+1 <= j <= xup // δείκτης δεξιό τµήµα k : low <= k <= up // δείκτης στο συγχωνευµένο πίνακα Χ[i] : µικρότερο διαθέσιµο στοιχείο στο αριστερό τµήµα. Χ[j] : µικρότερο διαθέσιµο στοιχείο στο δεξιό τµήµα. while ((i <= xmid) && (j <= xup)) if (X[i] <= X[j]) A[k++] = X[i++]; else A[k++] =X[j++]; Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 9

48 Συγχώνευση Συγχώνευση ταξινοµηµένων Α[low...mid] και A[mid+1...up] σε ταξινοµηµένο A[low...up]. X[up low+1] A[low...up]; // προσωρινή αποθήκευση i : 0 <= i <= xmid // δείκτης αριστερό τµήµα j : xmid+1 <= j <= xup // δείκτης δεξιό τµήµα k : low <= k <= up // δείκτης στο συγχωνευµένο πίνακα Χ[i] : µικρότερο διαθέσιµο στοιχείο στο αριστερό τµήµα. Χ[j] : µικρότερο διαθέσιµο στοιχείο στο δεξιό τµήµα. while ((i <= xmid) && (j <= xup)) if (X[i] <= X[j]) A[k++] = X[i++]; else A[k++] =X[j++]; Όταν ένα τµήµα εξαντληθεί, αντιγράφουµε όλα τα στοιχεία του άλλου στο Α[ ]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 9

49 Συγχώνευση Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 10

50 Συγχώνευση merge(int A[], int low, int mid, int up) { int xmid = mid-low, xup = up low; int i = 0, // δείκτης στο αριστερό τµήµα j = xmid+1, // δείκτης στο δεξιό τµήµα k = low; // δείκτης στο αποτέλεσµα X[up low+1] A[low...up]; // συγχώνευση µέχρι ένα τµήµα να εξαντληθεί while ((i <= xmid) && (j <= xup)) if (X[i] <= X[j]) A[k++] = X[i++]; else A[k++] = X[j++]; // αντέγραψε υπόλοιπα στοιχεία άλλου τµήµατος if (i > xmid) for (int q = j; q <= xup; q++) A[k++] = X[q]; else for (int q = i; q <= xmid; q++) A[k++] = X[q]; Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 10

51 MergeSort: Ορθότητα Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 11

52 MergeSort: Ορθότητα Ορθότητα merge επειδή τα τµήµατα είναι ταξινοµηµένα. Όταν ένα στοιχείο µεταφέρεται στον Α[ ], δεν υπάρχει µικρότερο διαθέσιµο στοιχείο στα δύο τµήµατα. mergesort(int A[], int left, int right) { if (left >= right) return; mid = (left + right) / 2; mergesort(a, left, mid); mergesort(a, mid+1, right); merge(a, left, mid, right); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 11

53 MergeSort: Ορθότητα Ορθότητα merge επειδή τα τµήµατα είναι ταξινοµηµένα. Όταν ένα στοιχείο µεταφέρεται στον Α[ ], δεν υπάρχει µικρότερο διαθέσιµο στοιχείο στα δύο τµήµατα. Ορθότητα mergesort αποδεικνύεται επαγωγικά : Βάση (ένα στοιχείο) τετριµµένη. Δύο τµήµατα σωστά ταξινοµηµένα (επαγωγική υποθ.) και συγχωνεύονται σωστά (ορθότητα merge) Σωστά ταξινοµηµένος πίνακας Α[ ]. mergesort(int A[], int left, int right) { if (left >= right) return; mid = (left + right) / 2; mergesort(a, left, mid); mergesort(a, mid+1, right); merge(a, left, mid, right); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 11

54 Χρόνος Εκτέλεσης Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 12

55 Χρόνος Εκτέλεσης Χρόνος εκτέλεσης merge (για n στοιχεία) : Θ(n) (γραµµικός) Θ(1) λειτουργίες για κάθε στοιχείο. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 12

56 Χρόνος Εκτέλεσης Χρόνος εκτέλεσης merge (για n στοιχεία) : Θ(n) (γραµµικός) Θ(1) λειτουργίες για κάθε στοιχείο. Χρόνος εκτέλεσης αλγόριθµων «διαίρει-και-βασίλευε» µε διατύπωση και λύση αναδροµικής εξίσωσης λειτουργίας. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 12

57 Χρόνος Εκτέλεσης Χρόνος εκτέλεσης merge (για n στοιχεία) : Θ(n) (γραµµικός) Θ(1) λειτουργίες για κάθε στοιχείο. Χρόνος εκτέλεσης αλγόριθµων «διαίρει-και-βασίλευε» µε διατύπωση και λύση αναδροµικής εξίσωσης λειτουργίας. Τ(n) : χρόνος (χ.π.) για ταξινόµηση n στοιχείων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 12

58 Χρόνος Εκτέλεσης Χρόνος εκτέλεσης merge (για n στοιχεία) : Θ(n) (γραµµικός) Θ(1) λειτουργίες για κάθε στοιχείο. Χρόνος εκτέλεσης αλγόριθµων «διαίρει-και-βασίλευε» µε διατύπωση και λύση αναδροµικής εξίσωσης λειτουργίας. Τ(n) : χρόνος (χ.π.) για ταξινόµηση n στοιχείων. T(n / 2) : ταξινόµηση αριστερού τµήµατος (n / 2 στοιχεία). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 12

59 Χρόνος Εκτέλεσης Χρόνος εκτέλεσης merge (για n στοιχεία) : Θ(n) (γραµµικός) Θ(1) λειτουργίες για κάθε στοιχείο. Χρόνος εκτέλεσης αλγόριθµων «διαίρει-και-βασίλευε» µε διατύπωση και λύση αναδροµικής εξίσωσης λειτουργίας. Τ(n) : χρόνος (χ.π.) για ταξινόµηση n στοιχείων. T(n / 2) : ταξινόµηση αριστερού τµήµατος (n / 2 στοιχεία). T(n / 2) : ταξινόµηση δεξιού τµήµατος (n / 2 στοιχεία). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 12

60 Χρόνος Εκτέλεσης Χρόνος εκτέλεσης merge (για n στοιχεία) : Θ(n) (γραµµικός) Θ(1) λειτουργίες για κάθε στοιχείο. Χρόνος εκτέλεσης αλγόριθµων «διαίρει-και-βασίλευε» µε διατύπωση και λύση αναδροµικής εξίσωσης λειτουργίας. Τ(n) : χρόνος (χ.π.) για ταξινόµηση n στοιχείων. T(n / 2) : ταξινόµηση αριστερού τµήµατος (n / 2 στοιχεία). T(n / 2) : ταξινόµηση δεξιού τµήµατος (n / 2 στοιχεία). Θ(n) : συγχώνευση ταξινοµηµένων τµηµάτων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 12

61 Χρόνος Εκτέλεσης Χρόνος εκτέλεσης merge (για n στοιχεία) : Θ(n) (γραµµικός) Θ(1) λειτουργίες για κάθε στοιχείο. Χρόνος εκτέλεσης αλγόριθµων «διαίρει-και-βασίλευε» µε διατύπωση και λύση αναδροµικής εξίσωσης λειτουργίας. Τ(n) : χρόνος (χ.π.) για ταξινόµηση n στοιχείων. T(n / 2) : ταξινόµηση αριστερού τµήµατος (n / 2 στοιχεία). T(n / 2) : ταξινόµηση δεξιού τµήµατος (n / 2 στοιχεία). Θ(n) : συγχώνευση ταξινοµηµένων τµηµάτων. T(n) = 2 T(n / 2) + Θ(n), T(1) = Θ(1) Χρόνος εκτέλεσης ΜergeSort: T(n) =??? Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 12

62 Δέντρο Αναδροµής Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 13

63 Δέντρο Αναδροµής T(n) = 2 T(n / 2) + Θ(n), Τ(1) = Θ(1) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 13

64 Δέντρο Αναδροµής T(n) = 2 T(n / 2) + Θ(n), Τ(1) = Θ(1) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 13

65 Δέντρο Αναδροµής T(n) = 2 T(n / 2) + Θ(n), Τ(1) = Θ(1) Δέντρο αναδροµής : Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 13

66 Δέντρο Αναδροµής T(n) = 2 T(n / 2) + Θ(n), Τ(1) = Θ(1) Δέντρο αναδροµής : Ύψος : Θ(log n) #κορυφών : Θ(n) Χρόνος / επίπεδο : Θ(n) Συνολικός χρόνος : Θ(n log n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 13

67 Master Theorem Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 14

68 Master Theorem Ανάλυση χρόνου εκτέλεσης αλγορίθµων «διαίρει-και-βασίλευε» µε αναδροµικές σχέσεις της µορφής Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 14

69 Master Theorem Ανάλυση χρόνου εκτέλεσης αλγορίθµων «διαίρει-και-βασίλευε» µε αναδροµικές σχέσεις της µορφής όπου α, b σταθερές και f(n) θετική συνάρτηση. Επίλυση µε Θεώρηµα Κυρίαρχου Όρου (Master Theorem) Ασυµπτωτικά µεγαλύτερος από f(n) και καθορίζει λύση. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 14

70 Master Theorem: Ειδικές Μορφές Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 15

71 Master Theorem: Ειδικές Μορφές Όταν f(n) = Θ(n), δηλ. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 15

72 Master Theorem: Ειδικές Μορφές Όταν f(n) = Θ(n), δηλ. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 15

73 Master Theorem: Ειδικές Μορφές Όταν f(n) = Θ(n), δηλ. Όταν f(n) = Θ(n d ), δηλ. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 15

74 Master Theorem: Ειδικές Μορφές Όταν f(n) = Θ(n), δηλ. Όταν f(n) = Θ(n d ), δηλ. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 15

75 Παραδείγµατα Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

76 Παραδείγµατα Τ(n) = 9 T(n / 3) + n. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

77 Παραδείγµατα Τ(n) = 9 T(n / 3) + n. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

78 Παραδείγµατα Τ(n) = 9 T(n / 3) + n. Τ(n) = T(2n / 3) + 1. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

79 Παραδείγµατα Τ(n) = 9 T(n / 3) + n. Τ(n) = T(2n / 3) + 1. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

80 Παραδείγµατα Τ(n) = 9 T(n / 3) + n. Τ(n) = T(2n / 3) + 1. Τ(n) = 3 T(n / 4) + n log n. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

81 Παραδείγµατα Τ(n) = 9 T(n / 3) + n. Τ(n) = T(2n / 3) + 1. Τ(n) = 3 T(n / 4) + n log n. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

82 Παραδείγµατα Τ(n) = 9 T(n / 3) + n. Τ(n) = T(2n / 3) + 1. Τ(n) = 3 T(n / 4) + n log n. Τ(n) = 2 T(n / 2) + n. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

83 Παραδείγµατα Τ(n) = 9 T(n / 3) + n. Τ(n) = T(2n / 3) + 1. Τ(n) = 3 T(n / 4) + n log n. Τ(n) = 2 T(n / 2) + n. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

84 Παραδείγµατα Τ(n) = 9 T(n / 3) + n. Τ(n) = T(2n / 3) + 1. Τ(n) = 3 T(n / 4) + n log n. Τ(n) = 2 T(n / 2) + n. Τ(n) = 2 T(n / 2) + n log n. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 16

85 Πολλαπλασιασµός Αριθµών Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 17

86 Πολλαπλασιασµός Αριθµών Υπολογισµός αθροίσµατος x + y, x και y αριθµοί n-bits. Κλασσικός αλγόριθµος πρόσθεσης, χρόνος Θ(n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 17

87 Πολλαπλασιασµός Αριθµών Υπολογισµός αθροίσµατος x + y, x και y αριθµοί n-bits. Κλασσικός αλγόριθµος πρόσθεσης, χρόνος Θ(n). Υπολογισµός γινοµένου x y, x και y αριθµοί µε n-bits. Κλασσικός αλγόριθµος πολ/µού, χρόνος Θ(n 2 ). Καλύτερος αλγόριθµος; Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 17

88 Πολλαπλασιασµός Αριθµών Υπολογισµός αθροίσµατος x + y, x και y αριθµοί n-bits. Κλασσικός αλγόριθµος πρόσθεσης, χρόνος Θ(n). Υπολογισµός γινοµένου x y, x και y αριθµοί µε n-bits. Κλασσικός αλγόριθµος πολ/µού, χρόνος Θ(n 2 ). Καλύτερος αλγόριθµος; Διαίρει-και-Βασίλευε: Διαίρεση: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 17

89 Πολλαπλασιασµός Αριθµών Υπολογισµός αθροίσµατος x + y, x και y αριθµοί n-bits. Κλασσικός αλγόριθµος πρόσθεσης, χρόνος Θ(n). Υπολογισµός γινοµένου x y, x και y αριθµοί µε n-bits. Κλασσικός αλγόριθµος πολ/µού, χρόνος Θ(n 2 ). Καλύτερος αλγόριθµος; Διαίρει-και-Βασίλευε: Διαίρεση: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 17

90 Πολλαπλασιασµός Αριθµών Υπολογισµός αθροίσµατος x + y, x και y αριθµοί n-bits. Κλασσικός αλγόριθµος πρόσθεσης, χρόνος Θ(n). Υπολογισµός γινοµένου x y, x και y αριθµοί µε n-bits. Κλασσικός αλγόριθµος πολ/µού, χρόνος Θ(n 2 ). Καλύτερος αλγόριθµος; Διαίρει-και-Βασίλευε: Διαίρεση: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 17

91 Πολλαπλασιασµός Αριθµών Υπολογισµός αθροίσµατος x + y, x και y αριθµοί n-bits. Κλασσικός αλγόριθµος πρόσθεσης, χρόνος Θ(n). Υπολογισµός γινοµένου x y, x και y αριθµοί µε n-bits. Κλασσικός αλγόριθµος πολ/µού, χρόνος Θ(n 2 ). Καλύτερος αλγόριθµος; Διαίρει-και-Βασίλευε: Διαίρεση: 4 πολλαπλασιασµοί (n Χρόνος: / 2)-bits, 2 ολισθήσεις, 3 προσθέσεις. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 17

92 Πολλαπλασιασµός Αριθµών Υπολογισµός αθροίσµατος x + y, x και y αριθµοί n-bits. Κλασσικός αλγόριθµος πρόσθεσης, χρόνος Θ(n). Υπολογισµός γινοµένου x y, x και y αριθµοί µε n-bits. Κλασσικός αλγόριθµος πολ/µού, χρόνος Θ(n 2 ). Καλύτερος αλγόριθµος; Διαίρει-και-Βασίλευε: Διαίρεση: 4 πολλαπλασιασµοί (n Χρόνος: / 2)-bits, 2 ολισθήσεις, 3 προσθέσεις. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 17

93 Πολλαπλασιασµός Αριθµών Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 18

94 Πολλαπλασιασµός Αριθµών Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 18

95 Πολλαπλασιασµός Αριθµών Όµως z m υπολογίζεται µε 1 µόνο πολ/µο (n / 2 + 1)-bits. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 18

96 Πολλαπλασιασµός Αριθµών Όµως z m υπολογίζεται µε 1 µόνο πολ/µο (n / 2 + 1)-bits. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 18

97 Πολλαπλασιασµός Αριθµών Όµως z m υπολογίζεται µε 1 µόνο πολ/µο (n / 2 + 1)-bits. 3 πολλαπλασιασµοί (n / 2)-bits, 2 ολισθήσεις, 6 προσθέσεις. Χρόνος: Παράδειγµα: = Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 18

98 Πολλαπλασιασµός Αριθµών Όµως z m υπολογίζεται µε 1 µόνο πολ/µο (n / 2 + 1)-bits. 3 πολλαπλασιασµοί (n / 2)-bits, 2 ολισθήσεις, 6 προσθέσεις. Χρόνος: Παράδειγµα: = Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 18

99 Πολλαπλασιασµός Πινάκων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 19

100 Πολλαπλασιασµός Πινάκων Υπολογισµός γινοµένου C = A B. A, B τετραγωνικοί πίνακες n n. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 19

101 Πολλαπλασιασµός Πινάκων Υπολογισµός γινοµένου C = A B. A, B τετραγωνικοί πίνακες n n. Εφαρµογή ορισµού: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 19

102 Πολλαπλασιασµός Πινάκων Υπολογισµός γινοµένου C = A B. A, B τετραγωνικοί πίνακες n n. Εφαρµογή ορισµού: Χρόνος Θ(n 3 ) (n 2 στοιχεία, χρόνος Θ(n) για καθένα). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 19

103 Πολλαπλασιασµός Πινάκων Υπολογισµός γινοµένου C = A B. A, B τετραγωνικοί πίνακες n n. Εφαρµογή ορισµού: Χρόνος Θ(n 3 ) (n 2 στοιχεία, χρόνος Θ(n) για καθένα). Διαίρει-και-Βασίλευε: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 19

104 Πολλαπλασιασµός Πινάκων Υπολογισµός γινοµένου C = A B. A, B τετραγωνικοί πίνακες n n. Εφαρµογή ορισµού: Χρόνος Θ(n 3 ) (n 2 στοιχεία, χρόνος Θ(n) για καθένα). Διαίρει-και-Βασίλευε: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 19

105 Πολλαπλασιασµός Πινάκων Υπολογισµός γινοµένου C = A B. A, B τετραγωνικοί πίνακες n n. Εφαρµογή ορισµού: Χρόνος Θ(n 3 ) (n 2 στοιχεία, χρόνος Θ(n) για καθένα). Διαίρει-και-Βασίλευε: 8 πολ/µοι και 4 προσθέσεις πινάκων Χρόνος: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 19

106 Αλγόριθµος Strassen (1969) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

107 Αλγόριθµος Strassen (1969) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

108 Αλγόριθµος Strassen (1969) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

109 Αλγόριθµος Strassen (1969) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

110 Αλγόριθµος Strassen (1969) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

111 Αλγόριθµος Strassen (1969) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

112 Αλγόριθµος Strassen (1969) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

113 Αλγόριθµος Strassen (1969) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

114 Αλγόριθµος Strassen (1969) 7 πολ/µοι και 24 προσθέσεις πινάκων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

115 Αλγόριθµος Strassen (1969) 7 πολ/µοι και 24 προσθέσεις πινάκων Χρόνος: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 20

116 Υπολογισµός Δύναµης (Diffie-Hellman) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 21

117 Υπολογισµός Δύναµης (Diffie-Hellman) Συµφωνία Αλίκης και Βασίλη σε κρυπτογραφικό κλειδί. Εύα παρακολουθεί για να «κλέψει» το κλειδί. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 21

118 Υπολογισµός Δύναµης (Diffie-Hellman) Συµφωνία Αλίκης και Βασίλη σε κρυπτογραφικό κλειδί. Εύα παρακολουθεί για να «κλέψει» το κλειδί. Α, Β συµφωνούν δηµόσια σε πρώτο p και ακέραιο q < p. Ε γνωρίζει p, q. Εµπλεκόµενοι αριθµοί είναι πολυψήφιοι (π.χ. 512 ψηφία). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 21

119 Υπολογισµός Δύναµης (Diffie-Hellman) Συµφωνία Αλίκης και Βασίλη σε κρυπτογραφικό κλειδί. Εύα παρακολουθεί για να «κλέψει» το κλειδί. Α, Β συµφωνούν δηµόσια σε πρώτο p και ακέραιο q < p. Ε γνωρίζει p, q. Εµπλεκόµενοι αριθµοί είναι πολυψήφιοι (π.χ. 512 ψηφία). Α διαλέγει τυχαία και υπολογίζει Β διαλέγει τυχαία και υπολογίζει Α, Β ανταλλάσσουν q α, q b και τα µαθαίνει Ε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 21

120 Υπολογισµός Δύναµης (Diffie-Hellman) Συµφωνία Αλίκης και Βασίλη σε κρυπτογραφικό κλειδί. Εύα παρακολουθεί για να «κλέψει» το κλειδί. Α, Β συµφωνούν δηµόσια σε πρώτο p και ακέραιο q < p. Ε γνωρίζει p, q. Εµπλεκόµενοι αριθµοί είναι πολυψήφιοι (π.χ. 512 ψηφία). Α διαλέγει τυχαία και υπολογίζει Β διαλέγει τυχαία και υπολογίζει Α, Β ανταλλάσσουν q α, q b και τα µαθαίνει Ε. Α, B υπολογίζουν Κ (µόνοι τους). Ε δεν ξέρει Κ. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 21

121 Υπολογισµός Δύναµης (Diffie-Hellman) Συµφωνία Αλίκης και Βασίλη σε κρυπτογραφικό κλειδί. Εύα παρακολουθεί για να «κλέψει» το κλειδί. Α, Β συµφωνούν δηµόσια σε πρώτο p και ακέραιο q < p. Ε γνωρίζει p, q. Εµπλεκόµενοι αριθµοί είναι πολυψήφιοι (π.χ. 512 ψηφία). Α διαλέγει τυχαία και υπολογίζει Β διαλέγει τυχαία και υπολογίζει Α, Β ανταλλάσσουν q α, q b και τα µαθαίνει Ε. Α, B υπολογίζουν Κ (µόνοι τους). Ε δεν ξέρει Κ. Για Κ, Ε χρειάζεται α, b (δεν µεταδόθηκαν). Επίλυση διακριτού λογαρίθµου (πολύ δύσκολο). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 21

122 Υπολογισµός Δύναµης Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 22

123 Υπολογισµός Δύναµης Εφαρµογή υποθέτει αποδοτικό αλγόριθµο υπολογισµού, x, n, p πολυψήφιοι ακέραιοι. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 22

124 Υπολογισµός Δύναµης Εφαρµογή υποθέτει αποδοτικό αλγόριθµο υπολογισµού, x, n, p πολυψήφιοι ακέραιοι. Υπολογισµός δυνάµεων µε τη σειρά (1, 2, 3, ): αν µήκος 512 bits, χρειάζεται περίπου πολ/µους!!! Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 22

125 Υπολογισµός Δύναµης Εφαρµογή υποθέτει αποδοτικό αλγόριθµο υπολογισµού, x, n, p πολυψήφιοι ακέραιοι. Υπολογισµός δυνάµεων µε τη σειρά (1, 2, 3, ): αν µήκος 512 bits, χρειάζεται περίπου πολ/µους!!! Διαίρει-και-Βασίλευε (έστω n δύναµη του 2): Υπολογίζουµε αναδροµικά και Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 22

126 Υπολογισµός Δύναµης Εφαρµογή υποθέτει αποδοτικό αλγόριθµο υπολογισµού, x, n, p πολυψήφιοι ακέραιοι. Υπολογισµός δυνάµεων µε τη σειρά (1, 2, 3, ): αν µήκος 512 bits, χρειάζεται περίπου πολ/µους!!! Διαίρει-και-Βασίλευε (έστω n δύναµη του 2): Υπολογίζουµε αναδροµικά και Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 22

127 Υπολογισµός Δύναµης Εφαρµογή υποθέτει αποδοτικό αλγόριθµο υπολογισµού, x, n, p πολυψήφιοι ακέραιοι. Υπολογισµός δυνάµεων µε τη σειρά (1, 2, 3, ): αν µήκος 512 bits, χρειάζεται περίπου πολ/µους!!! Διαίρει-και-Βασίλευε (έστω n δύναµη του 2): Υπολογίζουµε αναδροµικά και #πολλαπλασιασµών: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 22

128 Υπολογισµός Δύναµης Εφαρµογή υποθέτει αποδοτικό αλγόριθµο υπολογισµού, x, n, p πολυψήφιοι ακέραιοι. Υπολογισµός δυνάµεων µε τη σειρά (1, 2, 3, ): αν µήκος 512 bits, χρειάζεται περίπου πολ/µους!!! Διαίρει-και-Βασίλευε (έστω n δύναµη του 2): Υπολογίζουµε αναδροµικά και #πολλαπλασιασµών: p µε µήκος 512 bits: περίπου 2 10 πολ/µους. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 22

129 Προϋποθέσεις Εφαρµογής Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 23

130 Προϋποθέσεις Εφαρµογής Διαίρεση σηµαντικά ευκολότερη από επίλυση αρχικού. Σύνθεση σηµαντικά ευκολότερη από επίλυση αρχικού. Υπο-στιγµιότυπα σηµαντικά µικρότερα από αρχικό (π.χ. αρχικό µέγεθος n, υπο-στιγµ. µεγέθους n / c, c > 1). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 23

131 Προϋποθέσεις Εφαρµογής Διαίρεση σηµαντικά ευκολότερη από επίλυση αρχικού. Σύνθεση σηµαντικά ευκολότερη από επίλυση αρχικού. Υπο-στιγµιότυπα σηµαντικά µικρότερα από αρχικό (π.χ. αρχικό µέγεθος n, υπο-στιγµ. µεγέθους n / c, c > 1). Ανεξάρτητα υπο-στιγµιότυπα που λύνονται από ανεξάρτητες αναδροµικές κλήσεις. Ίδια ή επικαλυπτόµενα υπο-στιγµιότυπα : σηµαντική και αδικαιολόγητη αύξηση χρόνου εκτέλεσης. Επικαλυπτόµενα υπο-στιγµιότυπα : Δυναµικός Προγραµµατισµός Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 23

132 (Αντι)παράδειγµα Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 24

133 (Αντι)παράδειγµα Υπολογισµός n-οστού όρου ακολουθίας Fibonacci. long fibrec(long n) { if (n <= 1) return(n); return(fibrec(n-1) + fibrec(n-2)); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 24

134 (Αντι)παράδειγµα Υπολογισµός n-οστού όρου ακολουθίας Fibonacci. long fibrec(long n) { if (n <= 1) return(n); return(fibrec(n-1) + fibrec(n-2)); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 24

135 (Αντι)παράδειγµα Υπολογισµός n-οστού όρου ακολουθίας Fibonacci. long fibrec(long n) { if (n <= 1) return(n); return(fibrec(n-1) + fibrec(n-2)); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 24

136 (Αντι)παράδειγµα Υπολογισµός n-οστού όρου ακολουθίας Fibonacci. Χρόνος εκτέλεσης: long fibrec(long n) { if (n <= 1) return(n); return(fibrec(n-1) + fibrec(n-2)); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 24

137 (Αντι)παράδειγµα Υπολογισµός n-οστού όρου ακολουθίας Fibonacci. Χρόνος εκτέλεσης: long fibrec(long n) { if (n <= 1) return(n); return(fibrec(n-1) + fibrec(n-2)); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 24

138 (Αντι)παράδειγµα Υπολογισµός n-οστού όρου ακολουθίας Fibonacci. Χρόνος εκτέλεσης: long fibrec(long n) { if (n <= 1) return(n); return(fibrec(n-1) + fibrec(n-2)); } long fib(long n) { long cur = 1, prev = 0; for (i = 2; i <= n; i++) { cur = cur + prev; prev = cur prev; } return(cur); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 24

139 (Αντι)παράδειγµα Υπολογισµός n-οστού όρου ακολουθίας Fibonacci. Χρόνος εκτέλεσης: long fibrec(long n) { if (n <= 1) return(n); return(fibrec(n-1) + fibrec(n-2)); } Λύση: Επικαλυπτόµενα στιγµ.: Εκθετικός χρόνος! Αλγόριθµος γραµµικού χρόνου; Καλύτερος αλγόριθµος; long fib(long n) { long cur = 1, prev = 0; for (i = 2; i <= n; i++) { cur = cur + prev; prev = cur prev; } return(cur); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 24

140 Ακολουθία Fibonacci Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 25

141 Ακολουθία Fibonacci Ακολουθία Fibonacci: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 25

142 Ακολουθία Fibonacci Ακολουθία Fibonacci: Θεωρούµε πίνακα και Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 25

143 Ακολουθία Fibonacci Ακολουθία Fibonacci: Θεωρούµε πίνακα και Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 25

144 Ακολουθία Fibonacci Ακολουθία Fibonacci: Θεωρούµε πίνακα και Παρατηρούµε ότι Με επαγωγή αποδεικνύουµε ότι Διαίρει-και-Βασίλευε: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 25

145 Ακολουθία Fibonacci Ακολουθία Fibonacci: Θεωρούµε πίνακα και Παρατηρούµε ότι Με επαγωγή αποδεικνύουµε ότι Διαίρει-και-Βασίλευε: Υπολογισµός σε χρόνο Ο(log n) (όπως µε αριθµούς). Υπολογίζω αναδροµικά το και Χρόνος: Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 25

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε Γενική μέθοδος σχεδιασμού αλγορίθμων: ιαίρεση σε ( 2) υποπροβλήματα

Διαβάστε περισσότερα

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1 Διαίρει-και-Βασίλευε Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Διαίρει-και-Βασίλευε Γενική μέθοδος

Διαβάστε περισσότερα

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε» Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε» ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε

Διαβάστε περισσότερα

Επιλογή. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο

Επιλογή. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο Επιλογή ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Πρόβλημα Επιλογής Πίνακας Α[]με n στοιχεία (όχι ταξινομημένος). Αριθμός k, 1 k n. Υπολογισμός

Διαβάστε περισσότερα

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1

Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Quicksort 1 Quicksort [Hoare, 62] Στοιχείο διαχωρισµού (pivot), π.χ. πρώτο, τυχαίο, Αναδιάταξη και διαίρεση εισόδου σε δύο υπο-ακολουθίες:

Διαβάστε περισσότερα

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Ταξινόμηση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Είσοδος n αντικείμενα a 1, a 2,..., a n με κλειδιά (συνήθως σε ένα πίνακα, ή λίστα, κ.τ.λ)

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Mergesort Κεφάλαιο 8. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ταξινόµηση Mergesort Κεφάλαιο 8 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ταξινόµηση µε συγχώνευση Αλγόριθµος Mergesort Διµερής συγχώνευση Αφηρηµένη επιτόπου συγχώνευση Αναλυτική ταξινόµηση

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Διαίρει και Βασίλευε Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Διαίρει και Βασίλευε Divide and Conquer Η τεχνική διαίρει και βασίλευε αναφέρεται

Διαβάστε περισσότερα

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1

Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1 Ταξινόμηση Παύλος Εφραιμίδης Δομές Δεδομένων Ταξινόμηση 1 Το πρόβλημα της ταξινόμησης Δομές Δεδομένων Ταξινόμηση 2 Ταξινόμηση Δίνεται πολυ-σύνολο Σ με στοιχεία από κάποιο σύμπαν U (πχ. U = το σύνολο των

Διαβάστε περισσότερα

Εισαγωγή στην Ανάλυση Αλγορίθμων

Εισαγωγή στην Ανάλυση Αλγορίθμων Εισαγωγή στην Ανάλυση Αλγορίθμων (4) Μεθοδολογία αναδρομικών σχέσεων (Ι) Με επανάληψη της αναδρομής Έστω όπου r και a είναι σταθερές. Βρίσκουμε τη σχέση που εκφράζει την T(n) συναρτήσει της T(n-) την T(n)

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις Ο(n), Ω(n), Θ(n) Ανάλυση Πολυπλοκότητας Αλγορίθµων

Διαβάστε περισσότερα

Αλγόριθμοι Αναζήτησης

Αλγόριθμοι Αναζήτησης Αλγόριθμοι Αναζήτησης ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Αλγόριθµοι Divide-and- Conquer

Αλγόριθµοι Divide-and- Conquer Αλγόριθµοι Divide-and- Conquer Περίληψη Αλγόριθµοι Divide-and-Conquer Master Theorem Παραδείγµατα Αναζήτηση Ταξινόµηση Πλησιέστερα σηµεία Convex Hull Αλγόριθµοι Divide-and-Conquer Γενική Μεθοδολογία Το

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 9 ο Ταξινόµηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ταξινόµηση Εισαγωγή Selection sort Insertion sort Bubble sort

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης

Δοµές Δεδοµένων. 10η Διάλεξη Ταξινόµηση. E. Μαρκάκης Δοµές Δεδοµένων 10η Διάλεξη Ταξινόµηση E. Μαρκάκης Περίληψη Ταξινόµηση µε αριθµοδείκτη κλειδιού Ταξινόµηση µε συγχώνευση Αλγόριθµος Mergesort Διµερής συγχώνευση Αφηρηµένη επιτόπου συγχώνευση Αναλυτική

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Η Μέθοδος «Διαίρει & Βασίλευε» Η Μέθοδος

Διαβάστε περισσότερα

Δυναμικός Προγραμματισμός

Δυναμικός Προγραμματισμός Τρίγωνο του Pascal Δυναμικός Προγραμματισμός Διωνυμικοί συντελεστές Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο

Διαβάστε περισσότερα

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ 1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ Φροντιστήριο #10: Αλγόριθμοι Διαίρει & Βασίλευε: Master Theorem, Αλγόριθμοι Ταξινόμησης, Πιθανοτικός

Διαβάστε περισσότερα

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων Τεχνικές Σχεδιασµού Αλγορίθµων Αλγόριθµοι Παύλος Εφραιµίδης pefraimi@ee.duth.gr Ορισµένες γενικές αρχές για τον σχεδιασµό αλγορίθµων είναι: ιαίρει και Βασίλευε (Divide and Conquer) υναµικός Προγραµµατισµός

Διαβάστε περισσότερα

Εργαστηριακή Άσκηση 1

Εργαστηριακή Άσκηση 1 Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε

Διαβάστε περισσότερα

Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και

Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και Παύλος Εφραιµίδης 1 Το πρόβληµα της ταξινόµησης 2 3 ίνεται πολυ-σύνολο Σ µε στοιχεία από κάποιο σύµπαν U (πχ. U = το σύνολο των ακεραίων αριθµών). του Σ είναι η επιβολή µιας διάταξης στα στοιχεία του συνόλου

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2 Ε. Μαρκάκης Επικ. Καθηγητής Περίληψη Εµπειρική ανάλυση αλγορίθµων Μαθηµατική ανάλυση αλγορίθµων Αύξηση συναρτήσεων Συµβολισµός µεγάλου όµικρον Παραδείγµατα

Διαβάστε περισσότερα

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3) 3.1 Ασυμπτωτικός συμβολισμός (Ι) Οι ορισμοί που ακολουθούν μας επιτρέπουν να επιχειρηματολογούμε με ακρίβεια για την ασυμπτωτική συμπεριφορά. Οι f(n) και g(n) συμβολίζουν

Διαβάστε περισσότερα

Αλγόριθμοι και Πολυπλοκότητα

Αλγόριθμοι και Πολυπλοκότητα Αλγόριθμοι και Πολυπλοκότητα Ανάλυση Αλγορίθμων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανάλυση Αλγορίθμων Η ανάλυση αλγορίθμων περιλαμβάνει τη διερεύνηση του τρόπου

Διαβάστε περισσότερα

Πολυπλοκότητα Αλγορίθµων

Πολυπλοκότητα Αλγορίθµων Πολυπλοκότητα Αλγορίθµων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εµπειρική Θεωρητική Ανάλυση Αλγορίθµων Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 22 Counting sort, bucket sort και radix sort 1 / 16 Ιδιότητες αλγορίθμων ταξινόμησης ευστάθεια (stable

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

Διαβάστε περισσότερα

Τεχνικές Σχεδιασμού Αλγορίθμων

Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Διαίρει και Βασίλευε Δυναμικός Προγραμματισμός Απληστία Π. Μποζάνης ΤHMMY - Αλγόριθμοι 2014-2015 1 Διαίρει και Βασίλευε Βασικά Βήματα Διαίρει: Κατάτμηση του αρχικού προβλήματος

Διαβάστε περισσότερα

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I

Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης: Α. SelectoSort Ταξινόμηση με Επιλογή Β. IsertoSort Ταξινόμηση με Εισαγωγή Γ. MergeSort

Διαβάστε περισσότερα

Αριθμοθεωρητικοί Αλγόριθμοι

Αριθμοθεωρητικοί Αλγόριθμοι Αλγόριθμοι που επεξεργάζονται μεγάλους ακέραιους αριθμούς Μέγεθος εισόδου: Αριθμός bits που απαιτούνται για την αναπαράσταση των ακεραίων. Έστω ότι ένας αλγόριθμος λαμβάνει ως είσοδο έναν ακέραιο Ο αλγόριθμος

Διαβάστε περισσότερα

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 1 Σκελετοί Λύσεων

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 1 Σκελετοί Λύσεων ΕΠΛ 22: Αλγόριθµοι και Πολυπλοκότητα Κατ οίκον Εργασία Σκελετοί Λύσεων. (α) Έστω δροµολόγηση e, e 2,, e των εργασιών, 2,,. Τότε οι χρόνοι συµπλήρωσης των εργασιών είναι e d e e 2 d e + d e 2 e d e + d

Διαβάστε περισσότερα

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια υλοποίησης Ανάλυση της απόδοσης Θεωρητική

Διαβάστε περισσότερα

ΗΥ240 - Παναγιώτα Φατούρου 2

ΗΥ240 - Παναγιώτα Φατούρου 2 Ενότητα 8 Ταξινόµηση ΗΥ0 - Παναγιώτα Φατούρου Ταξινόµηση Θεωρούµε έναν πίνακα Α[0..n-] µε n στοιχεία στα οποία έχει ορισθεί µια γραµµική διάταξη, δηλαδή ζεύγος στοιχείων x,y του Α, είτε x < y, ή x > y

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις Ο(), Ω(), Θ( ) Ανάλυση Πολυπλοκότητας Αλγορίθµων

Διαβάστε περισσότερα

Ουρά Προτεραιότητας: Heap

Ουρά Προτεραιότητας: Heap Ουρά Προτεραιότητας: Heap ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ομές εδομένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειμένων για

Διαβάστε περισσότερα

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier

(CLR, κεφάλαιο 32) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier Ταχύς Μετασχηµατισµός Fourier CLR, κεφάλαιο 3 Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Παραστάσεις πολυωνύµων Πολυωνυµική Παρεµβολή ιακριτός Μετασχηµατισµός Fourier Ταχύς Μετασχηµατισµός Fourier

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 4: Διαίρει και Βασίλευε. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΙ Ενότητα 4: Διαίρει και Βασίλευε Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Άδειες Χρήσης Το παρόν

Διαβάστε περισσότερα

Αλγόριθµοι Ταξινόµησης

Αλγόριθµοι Ταξινόµησης Αλγόριθµοι Ταξινόµησης Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Οι αλγόριθµοι ταξινόµησης SelectionSort, InsertionSort, Mergesort, QuickSort, BucketSort Κάτω φράγµα της αποδοτικότητας

Διαβάστε περισσότερα

Ταξινόμηση. Σαλτογιάννη Αθανασία

Ταξινόμηση. Σαλτογιάννη Αθανασία Ταξινόμηση Σαλτογιάννη Αθανασία Ταξινόμηση Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν; Ταξινόμηση Τι εννοούμε όταν

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Η τακτοποίηση των δεδομένων με ιδιαίτερη σειρά είναι πολύ σημαντική λειτουργία που ονομάζεται

Διαβάστε περισσότερα

υναμικός Προγραμματισμός

υναμικός Προγραμματισμός υναμικός Προγραμματισμός ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιωνυμικοί Συντελεστές ιωνυμικοί

Διαβάστε περισσότερα

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων

Αλγοριθμικές Τεχνικές. Brute Force. Διαίρει και Βασίλευε. Παράδειγμα MergeSort. Παράδειγμα. Τεχνικές Σχεδιασμού Αλγορίθμων Τεχνικές Σχεδιασμού Αλγορίθμων Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και Βασίλευε (Divide and

Διαβάστε περισσότερα

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Αναζήτηση. 1. Σειριακή αναζήτηση 2. Δυαδική Αναζήτηση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Αναζήτηση. Σειριακή αναζήτηση. Δυαδική Αναζήτηση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Παραδοχή Στη συνέχεια των διαφανειών (διαλέξεων) η ασυμπτωτική έκφραση (συμβολισμός Ο, Ω, Θ) του χρόνου

Διαβάστε περισσότερα

Ταξινόμηση. 1. Γρήγορη ταξινόμηση 2. Ταξινόμηση με Συγχώνευση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Ταξινόμηση. 1. Γρήγορη ταξινόμηση 2. Ταξινόμηση με Συγχώνευση. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Γρήγορη ταξινόμηση. Ταξινόμηση με Συγχώνευση Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Γρήγορη Ταξινόμηση Η γρήγορη ταξινόμηση qucksort), που αλλιώς ονομάζεται και ταξινόμηση µε διαμερισμό

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας ΠΕΡΙΓΡΑΦΗ Σε αυτή την άσκηση καλείστε να αναλύσετε και να υπολογίσετε το

Διαβάστε περισσότερα

Πολλαπλασιασμός: αλγόριθμος

Πολλαπλασιασμός: αλγόριθμος ΟΛΛΑΛΑΣΙΑΣΜΟΣ ολλαπλασιασμός: αλγόριθμος Για να πολλαπλασιάσουμε δύο αριθμούς x και κατασκευάζουμε έναν πίνακα από ενδιάμεσα αθροίσματα, κάθε ένα από τα οποία προκύπτει ως γινόμενο του x με ένα ψηφίο του

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 1: Εισαγωγή Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα

Διαβάστε περισσότερα

Αναδρομή Ανάλυση Αλγορίθμων

Αναδρομή Ανάλυση Αλγορίθμων Αναδρομή Ανάλυση Αλγορίθμων Παράδειγμα: Υπολογισμός του παραγοντικού Ορισμός του n! n! = n x (n - 1) x x 2 x 1 Ο παραπάνω ορισμός μπορεί να γραφεί ως n! = 1 αν n = 0 n x (n -1)! αλλιώς Παράδειγμα (συνέχ).

Διαβάστε περισσότερα

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1

ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2-1 ιαίρει και Βασίλευε Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Η Μέθοδος Σχεδιασµού Αλγορίθµων ιαίρει και Βασίλευε Επίλυση Αναδροµικών Εξισώσεων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα - ιαίρει και Βασίλευε

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 2 ΛΥΣΕΙΣ Γραμμικές Δομές Δεδομένων, Ταξινόμηση Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 7α: Μελέτη πολυπλοκότητας των Αλγόριθμων qucksort & mergesort Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ

ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ (ΑΛΓΟΡΙΘΜΟΙ, Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani, σελ. 55-62 ΣΧΕΔΙΑΣΜΟΣ ΑΛΓΟΡΙΘΜΩΝ, Jon Kleinberg, Eva Tardos, Κεφάλαιο 5) Δυαδική αναζήτηση

Διαβάστε περισσότερα

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035).

Ανάλυση Αλγορίθµων. Σύντοµη επανάληψη (ΕΠΛ 035). Ανάλυση Αλγορίθµων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Ανάλυση αλγορίθµων Ο, Θ, Ω Ανάλυση µη αναδροµικών αλγόριθµων Ανάλυση αναδροµικών αλγόριθµων Εµπειρική Ανάλυση Visualization Απόδοση Αλγορίθµων Απόδοση

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 8α: Ταξινόμηση-Σύγκριση αλγορίθμων ταξινόμησης Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Quicksort Κεφάλαιο 7. Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ταξινόµηση Quicksort Κεφάλαιο 7. Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ταξινόµηση Quicksort Κεφάλαιο 7 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Quicksort Ο βασικός αλγόριθµος Χαρακτηριστικά επιδόσεων Μικροί υποπίνακες Μη αναδροµική υλοποίηση Δοµές Δεδοµένων

Διαβάστε περισσότερα

Υπολογιστικό Πρόβληµα

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

Διαβάστε περισσότερα

Αναδρομικοί Αλγόριθμοι

Αναδρομικοί Αλγόριθμοι Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας ένα ή περισσότερα στιγμιότυπα του ίδιου προβλήματος. Αναδρομικός αλγόριθμος (recursive algorithm) Επιλύει ένα πρόβλημα λύνοντας

Διαβάστε περισσότερα

Διάλεξη 17η: Ταξινόμηση και Αναζήτηση

Διάλεξη 17η: Ταξινόμηση και Αναζήτηση Διάλεξη 17η: Ταξινόμηση και Αναζήτηση Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Ταξινόμηση CS100, 2016-2017 1 / 10 Το πρόβλημα της Αναζήτησης

Διαβάστε περισσότερα

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012

Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 3 5 1 Ταξινόμηση - Sorting Πίνακας Α 1 3 5 5 3 1 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση

Διαβάστε περισσότερα

Αλγοριθμικές Τεχνικές

Αλγοριθμικές Τεχνικές Αλγοριθμικές Τεχνικές Παύλος Εφραιμίδης, Λέκτορας http://pericles.ee.duth.gr Αλγοριθμικές Τεχνικές 1 Τεχνικές Σχεδιασμού Αλγορίθμων Ορισμένες γενικές αρχές για τον σχεδιασμό αλγορίθμων είναι: Διαίρει και

Διαβάστε περισσότερα

ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)

ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια) ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια) Πολλαπλασιασμός: μπορούμε καλύτερα; Διαισθητικά, επειδή ο πολλαπλασιασμός φαίνεται να απαιτεί άθροιση περίπου n πολλαπλασίων μιας από τις εισόδους, και δεδομένου ότι κάθε πρόσθεση

Διαβάστε περισσότερα

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Λεξικό, Union Find. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Λεξικό, Union Find ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαχείριση ιαμερίσεων Συνόλου Στοιχεία

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι

ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι ΚΕΦΑΛΑΙΟ 5: Αλγόριθµοι 5.1 Η έννοια του αλγορίθµου 5.2 Αναπαράσταση αλγορίθµων 5.3 Επινόηση αλγορίθµων 5.4 Δοµές επανάληψης 5.5 Αναδροµικές δοµές 1 Αλγόριθµος: Ορισµός Ένας αλγόριθµος είναι ένα διατεταγµένο

Διαβάστε περισσότερα

242 -ΕισαγωγήστουςΗ/Υ

242 -ΕισαγωγήστουςΗ/Υ 1 242 -ΕισαγωγήστουςΗ/Υ ΤµήµαΜαθηµατικών, Πανεπιστήµιο Ιωαννίνων Άρτια Α.Μ. (0-2-4-6-8) 2 ήλωση: Πίνακες στην ΕΑΓ δηλωση ( [1 : 1, 1 : 2,..., 1: ν ] ) παραταξη ; Π.χ.: δηλωση

Διαβάστε περισσότερα

υναμικός Προγραμματισμός

υναμικός Προγραμματισμός υναμικός Προγραμματισμός ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιακριτό Πρόβλημα Σακιδίου ίνονται n αντικείμενα και σακίδιο μεγέθους Β. Αντικείμενο

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6α: Αναζήτηση Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commos. Για εκπαιδευτικό

Διαβάστε περισσότερα

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28)

ίκτυα Ταξινόµησης (CLR κεφάλαιο 28) ίκτυα Ταξινόµησης (CLR κεφάλαιο 28) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: ίκτυα σύγκρισης, δίκτυα ταξινόµησης Αρχή - ιτονική ταξινόµηση ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 2- Μοντέλο στο οποίο

Διαβάστε περισσότερα

Αναζήτηση και ταξινόμηση

Αναζήτηση και ταξινόμηση Αναζήτηση και ταξινόμηση Περιεχόμενα Αναζήτηση (searching): εύρεση ενός στοιχείου σε έναν πίνακα Ταξινόμηση (sorting): αναδιάταξη των στοιχείων ενός πίνακα ώστε να είναι τοποθετημένα με μια καθορισμένη

Διαβάστε περισσότερα

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ Θέματα μελέτης Ορθότητα και απόδοση αλγορίθμων Παρουσίαση και ανάλυση αλγορίθμου για πρόσθεση Al Khwarizmi Αλγόριθμοι Το δεκαδικό σύστημα εφευρέθηκε στην Ινδία περίπου το

Διαβάστε περισσότερα

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε Άπληστους Αλγόριθµους Στοιχεία άπληστων αλγορίθµων Το πρόβληµα επιλογής εργασιών ΕΠΛ 232

Διαβάστε περισσότερα

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55 ΑΝΑ ΡΟΜΗ- ΑΣΚΗΣΕΙΣ Μια µέθοδος είναι αναδροµική όταν καλεί τον εαυτό της και έχει µια συνθήκη τερµατισµού π.χ. το παραγοντικό ενός αριθµού Ν, µπορεί να καλεί το παραγοντικό του αριθµού Ν-1 το παραγοντικό

Διαβάστε περισσότερα

Ασυμπτωτικός Συμβολισμός

Ασυμπτωτικός Συμβολισμός Ασυμπτωτικός Συμβολισμός ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Υπολογιστική Πολυπλοκότητα Υπολογιστική πολυπλοκότητα αλγόριθμου Α: Ποσότητα

Διαβάστε περισσότερα

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων Λουκάς Γεωργιάδης loukas@cs.uoi.gr www.cs.uoi.gr/~loukas Βασικές έννοιες και εφαρμογές Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή

Διαβάστε περισσότερα

Σχεδίαση & Ανάλυση Αλγορίθμων

Σχεδίαση & Ανάλυση Αλγορίθμων Σχεδίαση & Ανάλυση Αλγορίθμων Ενότητα 3 Αλγόριθμοι Επιλογής Σταύρος Δ. Νικολόπουλος Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Αλγόριθμοι Επιλογής Γνωρίζουμε

Διαβάστε περισσότερα

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Ανάλυση Αλγορίθμων Θέματα Θέματα: Ορθότητα Χρονική αποδοτικότητα Χωρική αποδοτικότητα Βελτιστότητα Προσεγγίσεις: Θεωρητική ανάλυση Εμπειρική ανάλυση Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Θεωρητική

Διαβάστε περισσότερα

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 7 η Βασίλης Στεφανής Αλγόριθμοι ταξινόμησης Στην προηγούμενη διάλεξη είδαμε: Binary search Λειτουργεί μόνο σε ταξινομημένους πίνακες Πώς τους ταξινομούμε? Πολλοί τρόποι. Ενδεικτικά:

Διαβάστε περισσότερα

(Γραμμικές) Αναδρομικές Σχέσεις

(Γραμμικές) Αναδρομικές Σχέσεις (Γραμμικές) Αναδρομικές Σχέσεις ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Αναδρομικές Σχέσεις Αναπαράσταση

Διαβάστε περισσότερα

Εισαγωγή στους Αλγορίθμους Ενότητα 3η

Εισαγωγή στους Αλγορίθμους Ενότητα 3η Εισαγωγή στους Αλγορίθμους Ενότητα 3η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

Διαβάστε περισσότερα

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

Διαβάστε περισσότερα

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα:

Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: υναµικός Προγραµµατισµός Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε υναµικό Προγραµµατισµό Το πρόβληµα του πολλαπλασιασµού πινάκων ΕΠΛ 3 Αλγόριθµοι και Πολυπλοκότητα 3- υναµικός

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ Περίγραµµα Εισαγωγή Στοιχεία Πολυπλοκότητας Ηλίας Κ. Σάββας Επίκουρος Καθηγητής Τμήμα: Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών Email: savvas@teilar teilar.gr Αλγόριθµοι

Διαβάστε περισσότερα

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες

Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες Μια Επισκόπηση της Ύλης & Μερικές Οδηγίες Βαγγέλης ούρος douros@aueb.gr 1 11/6/2012 Αλγόριθμοι, Εαρινό Εξάμηνο 2012, Φροντιστήριο #14 Γενικά Σχόλια (1) 2 Για το τελικό διαγώνισμα θα χρειαστείτε: Φοιτητική

Διαβάστε περισσότερα

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές

Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνοσεμφε 2η ενότητα: Αλγοριθμικές τεχνικές, αριθμητικοί υπολογισμοί Διδάσκοντες Θεωρία: Στάθης Ζάχος, Άρης Παγουρτζής Εργαστήριο: Δώρα Σούλιου Βοηθός διδασκαλίας:

Διαβάστε περισσότερα

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,... KΕΦΑΛΑΙΟ ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ Βασικές έννοιες διαιρετότητας Θα συµβολίζουµε µε, τα σύνολα των φυσικών αριθµών και των ακεραίων αντιστοίχως: {,,3,,, } { 0,,,,, } = = ± ± ± Ορισµός Ένας φυσικός αριθµός

Διαβάστε περισσότερα

Δυναμικός Προγραμματισμός

Δυναμικός Προγραμματισμός πρόβλημα μεγέθους Ν «Διαίρει και βασίλευε» : ανεξάρτητα υποπροβλήματα διάσπαση πρόβλημα μεγέθους k πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους Ν Σε κάποιες περιπτώσεις όμως τα υποπροβλήματα δεν είναι ανεξάρτητα

Διαβάστε περισσότερα

Εργαστήριο 2: Πίνακες

Εργαστήριο 2: Πίνακες Εργαστήριο 2: Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Επεξεργασία Πινάκων - Υλοποίηση της Δυαδικής Αναζήτησης σε πίνακες - Υλοποίηση της Ταξινόμησης με Επιλογής σε πίνακες ΕΠΛ035

Διαβάστε περισσότερα

Δομές δεδομένων (2) Αλγόριθμοι

Δομές δεδομένων (2) Αλγόριθμοι Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student

Διαβάστε περισσότερα

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012

Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012 Πανεπιστήμιο Ιωαννίνων Τμήμα Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2012 Ενδεικτικές απαντήσεις 1 ου σετ ασκήσεων. Άσκηση 1 Πραγματοποιήσαμε μια σειρά μετρήσεων του χρόνου εκτέλεσης τριών

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 17 Σωροί (Heaps) έκδοση 10 1 / 19 Heap Σωρός Ο σωρός είναι μια μερικά ταξινομημένη δομή δεδομένων που υποστηρίζει

Διαβάστε περισσότερα

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή

Διαβάστε περισσότερα

Προγραμματιστικές Τεχνικές

Προγραμματιστικές Τεχνικές Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές Τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ Επικ. Καθηγητής ΕΜΠ v.vescoukis@cs.ntua.gr

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ ΣΗΜΕΡΑ Ιστορική αναδρομή Υπολογιστικές μηχανές

ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ ΣΗΜΕΡΑ Ιστορική αναδρομή Υπολογιστικές μηχανές ΠΕΡΙΕΧΟΜΕΝΑ 1 ΚΕΦΑΛΑΙΟ 1... 11 ΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΑΠΟ ΤΗΝ ΑΡΧΑΙΟΤΗΤΑ ΜΕΧΡΙ... 11 ΣΗΜΕΡΑ... 11 1.1 Ιστορική αναδρομή... 13 1.1.1 Υπολογιστικές μηχανές στην αρχαιότητα... 13 1.1.2 17ο έως τον 19ο... 14 1.1.3

Διαβάστε περισσότερα

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013

Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013 Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Δομές Δεδομένων [ΠΛΥ302] Χειμερινό Εξάμηνο 2013 Λυμένες Ασκήσεις Σετ Α: Ανάλυση Αλγορίθμων Άσκηση 1 Πραγματοποιήσαμε μια σειρά μετρήσεων του

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθμους

Εισαγωγή στους Αλγόριθμους Εισαγωγή στους Αλγόριθμους Εύη Παπαϊωάννου Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών Σκοποί ενότητας Παρουσίαση και μελέτη αλγορίθμων

Διαβάστε περισσότερα

ΗΥ240: οµές εδοµένων

ΗΥ240: οµές εδοµένων ΗΥ240: οµές εδοµένων ιδάσκουσα: Παναγιώτα Φατούρου Υποχρεωτικό Μάθηµα 2ου έτους Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Ενότητα 1 Εισαγωγή ΗΥ240 - Παναγιώτα Φατούρου 2 Εισαγωγικά Θέµατα Αντικείµενο

Διαβάστε περισσότερα