Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

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

Download "Δοµές Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2"

Transcript

1 Δοµές Δεδοµένων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

2 Δοµές Δεδοµένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειµένων για αποδοτική ενηµέρωση και ανάκτηση πληροφορίας. Αποδοτική υλοποίηση αλγορίθµων και Βάσεων Δεδοµένων. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

3 Δοµές Δεδοµένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειµένων για αποδοτική ενηµέρωση και ανάκτηση πληροφορίας. Αποδοτική υλοποίηση αλγορίθµων και Βάσεων Δεδοµένων. (Αποδοτική) αναπαράσταση οργάνωση «σύνθετων» αντικειµένων µε χρήση: Βασικών τύπων δεδοµένων (ints, floats, chars, strings, arrays). Μηχανισµών που παρέχονται από γλώσσες προγραµµατισµού (structs records, objects). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

4 Δοµές Δεδοµένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειµένων για αποδοτική ενηµέρωση και ανάκτηση πληροφορίας. Αποδοτική υλοποίηση αλγορίθµων και Βάσεων Δεδοµένων. (Αποδοτική) αναπαράσταση οργάνωση «σύνθετων» αντικειµένων µε χρήση: Βασικών τύπων δεδοµένων (ints, floats, chars, strings, arrays). Μηχανισµών που παρέχονται από γλώσσες προγραµµατισµού (structs records, objects). Διαχείριση: υλοποίηση στοιχειωδών λειτουργιών Ταξινόµηση, αναζήτηση, min/max/median, first/last,... Εισαγωγή, διαγραφή, ενηµέρωση. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

5 Δοµές Δεδοµένων (Αναπαράσταση,) οργάνωση και διαχείριση συνόλων αντικειµένων για αποδοτική ενηµέρωση και ανάκτηση πληροφορίας. Αποδοτική υλοποίηση αλγορίθµων και Βάσεων Δεδοµένων. (Αποδοτική) αναπαράσταση οργάνωση «σύνθετων» αντικειµένων µε χρήση: Βασικών τύπων δεδοµένων (ints, floats, chars, strings, arrays). Μηχανισµών που παρέχονται από γλώσσες προγραµµατισµού (structs records, objects). Διαχείριση: υλοποίηση στοιχειωδών λειτουργιών Ταξινόµηση, αναζήτηση, min/max/median, first/last,... Εισαγωγή, διαγραφή, ενηµέρωση. Λύσεις και τεχνικές για αποδοτική διαχείριση δεδοµένων. Ανάλυση για απαιτήσεις και καταλληλότητα. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 2

6 Γενικευµένος Τύπος Δεδοµένων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 3

7 Γενικευµένος Τύπος Δεδοµένων Abstract Data Type (ADT): σύνολο (στιγµιότυπα) µε λειτουργίες (µεθόδους) επί των στοιχείων του. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 3

8 Γενικευµένος Τύπος Δεδοµένων Abstract Data Type (ADT): σύνολο (στιγµιότυπα) µε λειτουργίες (µεθόδους) επί των στοιχείων του. Δοµή Δεδοµένων: Υλοποίηση ενός ADT Αναπαράσταση οργάνωση στιγµιοτύπων και υλοποίηση λειτουργιών µε κατάλληλους αλγόριθµους. Διατύπωση: ορισµός αναπαράστασης και περιγραφή υλοποίησης λειτουργιών (ψευδο-κώδικας). Ανάλυση: προσδιορισµός απαιτήσεων σε χώρο αποθήκευσης και χρόνο εκτέλεσης για κάθε (βασική) λειτουργία. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 3

9 Ουρά Προτεραιότητας (Priority Queue) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 4

10 Ουρά Προτεραιότητας (Priority Queue) Ουρά όπου σειρά διαγραφής καθορίζεται από προτεραιότητα (µεγαλύτερη µικρότερη). Στοιχεία (προτεραιότητα, πληροφορία). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 4

11 Ουρά Προτεραιότητας (Priority Queue) Ουρά όπου σειρά διαγραφής καθορίζεται από προτεραιότητα (µεγαλύτερη µικρότερη). Στοιχεία (προτεραιότητα, πληροφορία). Ακολουθία από λειτουργίες: insert(x): εισαγωγή x. deletemax(): διαγραφή και επιστροφή στοιχείου µέγιστης προτεραιότητας. max(): επιστροφή στοιχείου µέγιστης προτεραιότητας (χωρίς διαγραφή). changepriority(k): αλλαγή προτεραιότητας θέσης k. isempty(), size(): βοηθητικές λειτουργίες. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 4

12 Εφαρµογές Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 5

13 Εφαρµογές Άµεσες εφαρµογές: Υλοποίηση ουρών αναµονής µε προτεραιότητες. Δροµολόγηση µε προτεραιότητες. Largest (Smallest) Processing Time First. Έµµεσες εφαρµογές: Βασικό συστατικό πολλών ΔΔ και αλγορίθµων: HeapSort (γενικά ταξινόµηση µε επιλογή). Αλγόριθµος Huffman. Αλγόριθµοι Prim και Dijkstra.... Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 5

14 Στοιχεία Ουράς Προτεραιότητας Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 6

15 Στοιχεία Ουράς Προτεραιότητας Ουρές Προτεραιότητας: Ολική διάταξη στοιχείων µε βάση προτεραιότητα. Στοιχεία είναι αριθµοί (µε συνήθη διάταξη) που δηλώνουν προτεραιότητα. Εφαρµογή για στοιχεία κάθε συνόλου µε σχέση ολικής διάταξης (αριθµοί, λέξεις, εισοδήµατα,...). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 6

16 Στοιχεία Ουράς Προτεραιότητας Ουρές Προτεραιότητας: Ολική διάταξη στοιχείων µε βάση προτεραιότητα. Στοιχεία είναι αριθµοί (µε συνήθη διάταξη) που δηλώνουν προτεραιότητα. Εφαρµογή για στοιχεία κάθε συνόλου µε σχέση ολικής διάταξης (αριθµοί, λέξεις, εισοδήµατα,...). Ουρά Προτεραιότητας µε γραµµική λίστα: Διαγραφή µέγιστου ή εισαγωγή απαιτεί γραµµικό χρόνο. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 6

17 Στοιχεία Ουράς Προτεραιότητας Ουρές Προτεραιότητας: Ολική διάταξη στοιχείων µε βάση προτεραιότητα. Στοιχεία είναι αριθµοί (µε συνήθη διάταξη) που δηλώνουν προτεραιότητα. Εφαρµογή για στοιχεία κάθε συνόλου µε σχέση ολικής διάταξης (αριθµοί, λέξεις, εισοδήµατα,...). Ουρά Προτεραιότητας µε γραµµική λίστα: Διαγραφή µέγιστου ή εισαγωγή απαιτεί γραµµικό χρόνο. Υλοποίηση ουράς προτεραιότητας µε σωρό (heap). Δυαδικό δέντρο µε διάταξη σε κάθε µονοπάτι ρίζα φύλλο. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 6

18 Ιεραρχικές Δοµές: Δέντρα Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 7

19 Ιεραρχικές Δοµές: Δέντρα Γράφηµα ακυκλικό και συνεκτικό. Δέντρο µε n κορυφές έχει m = n 1 ακµές. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 7

20 Ιεραρχικές Δοµές: Δέντρα Γράφηµα ακυκλικό και συνεκτικό. Δέντρο µε n κορυφές έχει m = n 1 ακµές. Δέντρο µε ρίζα : Ιεραρχία Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 7

21 Ιεραρχικές Δοµές: Δέντρα Γράφηµα ακυκλικό και συνεκτικό. Δέντρο µε n κορυφές έχει m = n 1 ακµές. Δέντρο µε ρίζα : Ιεραρχία Ύψος : µέγιστη απόσταση από ρίζα. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 7

22 Ιεραρχικές Δοµές: Δέντρα Γράφηµα ακυκλικό και συνεκτικό. Δέντρο µε n κορυφές έχει m = n 1 ακµές. Δέντρο µε ρίζα : Ιεραρχία Ύψος : µέγιστη απόσταση από ρίζα. Δυαδικό δέντρο : έχει ρίζα και κάθε κορυφή 2 παιδιά : Αριστερό και δεξιό. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 7

23 Ιεραρχικές Δοµές: Δέντρα Γράφηµα ακυκλικό και συνεκτικό. Δέντρο µε n κορυφές έχει m = n 1 ακµές. Δέντρο µε ρίζα : Ιεραρχία Ύψος : µέγιστη απόσταση από ρίζα. Δυαδικό δέντρο : έχει ρίζα και κάθε κορυφή 2 παιδιά : Αριστερό και δεξιό. Κάθε υποδέντρο είναι δυαδικό δέντρο. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 7

24 Δυαδικά Δέντρα Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 8

25 Δυαδικά Δέντρα n(h): #κορυφών σε ΔΔ ύψους h. h + 1 n(h) 2 h+1 1 Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 8

26 Δυαδικά Δέντρα n(h): #κορυφών σε ΔΔ ύψους h. h + 1 n(h) 2 h+1 1 h+1 επίπεδα, 1 κορ. / επίπ. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 8

27 Δυαδικά Δέντρα n(h): #κορυφών σε ΔΔ ύψους h. h + 1 n(h) 2 h+1 1 h+1 επίπεδα, 1 κορ. / επίπ. 2 i κορυφές στο επίπεδο i h = 2 h Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 8

28 Δυαδικά Δέντρα n(h): #κορυφών σε ΔΔ ύψους h. h + 1 n(h) 2 h+1 1 h+1 επίπεδα, 1 κορ. / επίπ. 2 i κορυφές στο επίπεδο i h = 2 h Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 8

29 Δυαδικά Δέντρα n(h): #κορυφών σε ΔΔ ύψους h. h + 1 n(h) 2 h+1 1 h+1 επίπεδα, 1 κορ. / επίπ. 2 i κορυφές στο επίπεδο i h = 2 h h(n): ύψος ΔΔ µε n κορυφές: log 2 (n+1) 1 h(n) n 1 Γεµάτο (full): Κάθε κορυφή είτε φύλλο είτε 2 παιδιά. Πλήρες (complete) : Γεµάτο και όλα τα επίπεδα συµπληρωµένα. n = 2 h+ 1 1 Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 8

30 Σχεδόν Πλήρες Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

31 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

32 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

33 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

34 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

35 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

36 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

37 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. n(h): #κορυφών για ύψος h: 2 h n(h) 2 h Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

38 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. n(h): #κορυφών για ύψος h: 2 h n(h) 2 h Πλήρες(h) : 2 h+ 1 1 Πλήρες(h 1) + 1 : (2h 1) + 1 = 2h. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

39 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. n(h): #κορυφών για ύψος h: 2 h n(h) 2 h Πλήρες(h) : 2 h+ 1 1 Πλήρες(h 1) + 1 : (2h 1) + 1 = 2h. h(n): ύψος για n κορυφές: log 2 (n+1) 1 h(n) log 2 n Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

40 Σχεδόν Πλήρες Όλα τα επίπεδα συµπληρωµένα εκτός ίσως από τελευταίο που πληρώνεται από αριστερά προς τα δεξιά. n(h): #κορυφών για ύψος h: 2 h n(h) 2 h Πλήρες(h) : 2 h+ 1 1 Πλήρες(h 1) + 1 : (2h 1) + 1 = 2h. h(n): ύψος για n κορυφές: log 2 (n+1) 1 h(n) log 2 n Ύψος : h( n ) = log 2 n #φύλλων = n / 2 Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 9

41 Αναπαράσταση Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 10

42 Αναπαράσταση Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 10

43 Αναπαράσταση Δείκτες σε παιδιά, πατέρα (δυναµική). Σχεδόν πλήρη δυαδικά δέντρα : Πίνακας (στατική). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 10

44 Αναπαράσταση Δείκτες σε παιδιά, πατέρα (δυναµική). Σχεδόν πλήρη δυαδικά δέντρα : Πίνακας (στατική). Αρίθµηση αριστερά δεξιά και πάνω κάτω. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 10

45 Αναπαράσταση Δείκτες σε παιδιά, πατέρα (δυναµική). Σχεδόν πλήρη δυαδικά δέντρα : Πίνακας (στατική). Αρίθµηση αριστερά δεξιά και πάνω κάτω. Ρίζα : Π[1] Π[ i ] : πατέρας Π[ i / 2 ] αριστερό παιδί Π[ 2 i ] δεξιό παιδί Π[ 2 i + 1 ] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 10

46 Σωρός (heap) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 11

47 Σωρός (heap) Δέντρο µέγιστου (ελάχιστου): Τιµές στις κορυφές και τιµή κάθε κορυφής ( ) τιµές παιδιών της. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 11

48 Σωρός (heap) Δέντρο µέγιστου (ελάχιστου): Τιµές στις κορυφές και τιµή κάθε κορυφής ( ) τιµές παιδιών της. Σωρός : σχεδόν πλήρες δυαδικό δέντρο µέγιστου (ελάχιστου). Ύψος Θ(log n), #φύλλων = n / 2 Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 11

49 Σωρός (heap) Δέντρο µέγιστου (ελάχιστου): Τιµές στις κορυφές και τιµή κάθε κορυφής ( ) τιµές παιδιών της. Σωρός : σχεδόν πλήρες δυαδικό δέντρο µέγιστου (ελάχιστου). Ύψος Θ(log n), #φύλλων = n / 2 Πίνακας Α[ ] ιδιότ. σωρού : i A[ i ] A[ 2i ], A[ 2i + 1 ]. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 11

50 Σωρός (heap) Δέντρο µέγιστου (ελάχιστου): Τιµές στις κορυφές και τιµή κάθε κορυφής ( ) τιµές παιδιών της. Σωρός : σχεδόν πλήρες δυαδικό δέντρο µέγιστου (ελάχιστου). Ύψος Θ(log n), #φύλλων = n / 2 Πίνακας Α[ ] ιδιότ. σωρού : i A[ i ] A[ 2i ], A[ 2i + 1 ]. Μέγιστο : ρίζα Ελάχιστο : κάποιο φύλλο Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 11

51 Σωροί και Μη-Σωροί Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 12

52 Σωροί και Μη-Σωροί Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 12

53 Σωροί και Μη-Σωροί Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 12

54 Σωροί και Μη-Σωροί Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 12

55 Σωροί και Μη-Σωροί Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 12

56 Σωροί και Μη-Σωροί Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 12

57 Σωροί και Μη-Σωροί Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 12

58 Σωροί και Μη-Σωροί Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 12

59 Σωροί και Μη-Σωροί Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 12

60 Σωρός σαν Ουρά Προτεραιότητας Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 13

61 Σωρός σαν Ουρά Προτεραιότητας int A[n], hs; Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 13

62 Σωρός σαν Ουρά Προτεραιότητας int A[n], hs; max() : Ο(1) int max() { return(a[1]); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 13

63 Σωρός σαν Ουρά Προτεραιότητας int A[n], hs; max() : Ο(1) int max() { return(a[1]); } deletemax() : int deletemax() { if (isempty()) return(empty); max = A[1]; A[1] = A[hs--]; combine(1); return(max); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 13

64 Σωρός σαν Ουρά Προτεραιότητας int A[n], hs; max() : Ο(1) int max() { return(a[1]); } deletemax() : int deletemax() { if (isempty()) return(empty); max = A[1]; A[1] = A[hs--]; combine(1); return(max); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 13

65 Αποκατάσταση Προς-τα-Κάτω Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 14

66 Αποκατάσταση Προς-τα-Κάτω combine( i ) : Ενόσω όχι σωρός, - Α[ i ] max{a[ 2i ], A[ 2i+1 ] } - συνεχίζω στο αντίστοιχο υποδέντρο. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 14

67 Αποκατάσταση Προς-τα-Κάτω combine( i ) : Ενόσω όχι σωρός, - Α[ i ] max{a[ 2i ], A[ 2i+1 ] } - συνεχίζω στο αντίστοιχο υποδέντρο. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 14

68 Αποκατάσταση Προς-τα-Κάτω combine( i ) : Ενόσω όχι σωρός, - Α[ i ] max{a[ 2i ], A[ 2i+1 ] } - συνεχίζω στο αντίστοιχο υποδέντρο. combine(int i) { l = 2*i; r = 2*i+1; mp = i; if ((l <= hs) && (A[l] > A[mp])) mp = l; if ((r <= hs) && (A[r] > A[mp])) mp = r; if (mp!= i) { swap(a[i], A[mp]); combine(mp); } } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 14

69 Αποκατάσταση Προς-τα-Κάτω combine( i ) : Ενόσω όχι σωρός, - Α[ i ] max{a[ 2i ], A[ 2i+1 ] } - συνεχίζω στο αντίστοιχο υποδέντρο. combine(int i) { l = 2*i; r = 2*i+1; mp = i; if ((l <= hs) && (A[l] > A[mp])) mp = l; if ((r <= hs) && (A[r] > A[mp])) mp = r; if (mp!= i) { swap(a[i], A[mp]); combine(mp); } } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 14

70 Αποκατάσταση Προς-τα-Κάτω combine( i ) : Ενόσω όχι σωρός, - Α[ i ] max{a[ 2i ], A[ 2i+1 ] } - συνεχίζω στο αντίστοιχο υποδέντρο. combine(int i) { l = 2*i; r = 2*i+1; mp = i; if ((l <= hs) && (A[l] > A[mp])) mp = l; if ((r <= hs) && (A[r] > A[mp])) mp = r; if (mp!= i) { swap(a[i], A[mp]); combine(mp); } } Χρόνος για deletemax() : Ο(ύψος) = O(log n) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 14

71 Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 15

72 Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω insert( k ) : Εισαγωγή στο τέλος. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 15

73 Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω insert( k ) : Εισαγωγή στο τέλος. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 15

74 Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω insert( k ) : Εισαγωγή στο τέλος. Ενόσω όχι σωρός, A[ i ] A[ i / 2 ] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 15

75 Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω insert( k ) : Εισαγωγή στο τέλος. Ενόσω όχι σωρός, A[ i ] A[ i / 2 ] insert(int k) { A[++hs] = k; i = hs; p = i / 2; while ((i > 1) && (A[p] < A[i])) { swap(a[p], A[i]); i = p; p = i / 2; } } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 15

76 Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω insert( k ) : Εισαγωγή στο τέλος. Ενόσω όχι σωρός, A[ i ] A[ i / 2 ] insert(int k) { A[++hs] = k; i = hs; p = i / 2; while ((i > 1) && (A[p] < A[i])) { swap(a[p], A[i]); i = p; p = i / 2; } } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 15

77 Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω insert( k ) : Εισαγωγή στο τέλος. Ενόσω όχι σωρός, A[ i ] A[ i / 2 ] insert(int k) { A[++hs] = k; i = hs; p = i / 2; while ((i > 1) && (A[p] < A[i])) { swap(a[p], A[i]); i = p; p = i / 2; } } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 15

78 Εισαγωγή: Αποκατάσταση Προς-τα-Πάνω insert( k ) : Εισαγωγή στο τέλος. Ενόσω όχι σωρός, A[ i ] A[ i / 2 ] insert(int k) { A[++hs] = k; i = hs; p = i / 2; while ((i > 1) && (A[p] < A[i])) { swap(a[p], A[i]); i = p; p = i / 2; } } Χρόνος για insert() : Ο(ύψος) = O(log n) Αύξηση προτεραιότητας : εισαγωγή (αποκατ. προς-τα-πάνω). Μείωση προτεραιότητας : διαγραφή (αποκατ. προς-τα-κάτω). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 15

79 Δηµιουργία Σωρού Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

80 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

81 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

82 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n). Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

83 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n). Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

84 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n). Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

85 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n). Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

86 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n). Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. constructheap(int n) { hs = n; for (i = n / 2; i > 0; i--) combine(i); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

87 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n). Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. constructheap(int n) { hs = n; for (i = n / 2; i > 0; i--) combine(i); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

88 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n). Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. constructheap(int n) { hs = n; for (i = n / 2; i > 0; i--) combine(i); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

89 Δηµιουργία Σωρού Α[n] σωρός µε n εισαγωγές [3, 4, 6, 10, 8, 15, 16, 17, 12, 11, 20] Χρόνος O(n log n). Ιεραρχικά (bottom-up): Υποδέντρα-σωροί ενώνονται σε δέντρο-σωρό. constructheap(int n) { hs = n; for (i = n / 2; i > 0; i--) combine(i); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 16

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

91 Χρόνος Δηµιουργίας for (i = n / 2; i > 0; i--) combine(i); Χρόνος combine( i ) = Ο(ύψος i ). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 17

92 Χρόνος Δηµιουργίας for (i = n / 2; i > 0; i--) combine(i); Χρόνος combine( i ) = Ο(ύψος i ). n / 4 στοιχεία χρόνος 1 c Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 17

93 Χρόνος Δηµιουργίας for (i = n / 2; i > 0; i--) combine(i); Χρόνος combine( i ) = Ο(ύψος i ). n / 4 στοιχεία χρόνος 1 c n / 8 στοιχεία χρόνος 2 c Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 17

94 Χρόνος Δηµιουργίας for (i = n / 2; i > 0; i--) combine(i); Χρόνος combine( i ) = Ο(ύψος i ). n / 4 στοιχεία χρόνος 1 c n / 8 στοιχεία χρόνος 2 c n / 2k στοιχεία χρόνος (k-1) c, k log 2 n Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 17

95 Χρόνος Δηµιουργίας for (i = n / 2; i > 0; i--) combine(i); Χρόνος combine( i ) = Ο(ύψος i ). n / 4 στοιχεία χρόνος 1 c n / 8 στοιχεία χρόνος 2 c n / 2k στοιχεία χρόνος (k-1) c, k log 2 n Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 17

96 Χρόνος Δηµιουργίας for (i = n / 2; i > 0; i--) combine(i); Χρόνος combine( i ) = Ο(ύψος i ). n / 4 στοιχεία χρόνος 1 c n / 8 στοιχεία χρόνος 2 c n / 2k στοιχεία χρόνος (k-1) c, k log 2 n Χρόνος constructheap( ) = Θ(n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 17

97 Απόδοση Σωρού Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 18

98 Απόδοση Σωρού Χώρος : Θ(1) (in-place) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 18

99 Απόδοση Σωρού Χώρος : Θ(1) (in-place) Χρόνοι : createheap : Θ(n) insert, deletemax : O(log n) max, size, isempty : Θ(1) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 18

100 Απόδοση Σωρού Χώρος : Θ(1) (in-place) Χρόνοι : createheap : Θ(n) insert, deletemax : O(log n) max, size, isempty : Θ(1) Εξαιρετικά εύκολη υλοποίηση! Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 18

101 Απόδοση Σωρού Χώρος : Θ(1) (in-place) Χρόνοι : createheap : Θ(n) insert, deletemax : O(log n) max, size, isempty : Θ(1) Εξαιρετικά εύκολη υλοποίηση! Συµπέρασµα: Γρήγορη και ευρύτατα χρησιµοποιούµενη ουρά προτεραιότητας. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 18

102 Heap-Sort Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 19

103 Heap-Sort Αρχικοποίηση : δηµιουργία σωρού µε n στοιχεία. constructheap() : χρόνος Θ(n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 19

104 Heap-Sort Αρχικοποίηση : δηµιουργία σωρού µε n στοιχεία. constructheap() : χρόνος Θ(n). Εξαγωγή µέγιστου και τοποθέτηση στο τέλος (n 1 φορές). deletemax() : χρόνος Θ(log n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 19

105 Heap-Sort Αρχικοποίηση : δηµιουργία σωρού µε n στοιχεία. constructheap() : χρόνος Θ(n). Εξαγωγή µέγιστου και τοποθέτηση στο τέλος (n 1 φορές). deletemax() : χρόνος Θ(log n). Χρόνος : Θ(n) + n Θ(log n) = Θ(n log n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 19

106 Heap-Sort Αρχικοποίηση : δηµιουργία σωρού µε n στοιχεία. constructheap() : χρόνος Θ(n). Εξαγωγή µέγιστου και τοποθέτηση στο τέλος (n 1 φορές). deletemax() : χρόνος Θ(log n). Χρόνος : Θ(n) + n hs = n; constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Θ(log n) = Θ(n log n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 19

107 Heap-Sort Αρχικοποίηση : δηµιουργία σωρού µε n στοιχεία. constructheap() : χρόνος Θ(n). Εξαγωγή µέγιστου και τοποθέτηση στο τέλος (n 1 φορές). deletemax() : χρόνος Θ(log n). Χρόνος : Θ(n) + n hs = n; constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Θ(log n) = Θ(n log n). Χρονική Πολυπλοκότητα Ταξινόµησης: Ο(n log n). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 19

108 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

109 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

110 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

111 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

112 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

113 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

114 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

115 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

116 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

117 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

118 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

119 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

120 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

121 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

122 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

123 Heap-Sort : Παράδειγµα constructheap(n); for (i = n; i > 1; i--) { swap(a[1], A[i]); hs--; combine(1); } Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 20

124 Συγκριτικοί Αλγόριθµοι Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 21

125 Συγκριτικοί Αλγόριθµοι Ταξινόµηση µόνο µε συγκρίσεις και µετακινήσεις στοιχείων. Καµία άλλη ενέργεια στα στοιχεία (π.χ. οµαδοποίηση µε βάση δυαδική αναπαράσταση). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 21

126 Συγκριτικοί Αλγόριθµοι Ταξινόµηση µόνο µε συγκρίσεις και µετακινήσεις στοιχείων. Καµία άλλη ενέργεια στα στοιχεία (π.χ. οµαδοποίηση µε βάση δυαδική αναπαράσταση). Κάθε ντετερµινιστικός συγκριτικός αλγ. ταξινόµησης χρειάζεται Ω(n log n) συγκρίσεις µεταξύ στοιχείων. Αντίστοιχο κάτω φράγµα για πιθανοτικούς αλγόριθµους. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 21

127 Συγκριτικοί Αλγόριθµοι Ταξινόµηση µόνο µε συγκρίσεις και µετακινήσεις στοιχείων. Καµία άλλη ενέργεια στα στοιχεία (π.χ. οµαδοποίηση µε βάση δυαδική αναπαράσταση). Κάθε ντετερµινιστικός συγκριτικός αλγ. ταξινόµησης χρειάζεται Ω(n log n) συγκρίσεις µεταξύ στοιχείων. Αντίστοιχο κάτω φράγµα για πιθανοτικούς αλγόριθµους. Χρονική Πολυπλοκότητα Ταξινόµησης: Θ(n log n) Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 21

128 Συγκριτικοί Αλγόριθµοι Ταξινόµηση µόνο µε συγκρίσεις και µετακινήσεις στοιχείων. Καµία άλλη ενέργεια στα στοιχεία (π.χ. οµαδοποίηση µε βάση δυαδική αναπαράσταση). Κάθε ντετερµινιστικός συγκριτικός αλγ. ταξινόµησης χρειάζεται Ω(n log n) συγκρίσεις µεταξύ στοιχείων. Αντίστοιχο κάτω φράγµα για πιθανοτικούς αλγόριθµους. Χρονική Πολυπλοκότητα Ταξινόµησης: Θ(n log n) Υπάρχουν αλγόριθµοι µε γραµµικό χρόνο για συγκεκριµένους τύπους δεδοµένων (π.χ. αριθµούς). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 21

129 Δέντρο Συγκρίσεων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 22

130 Δέντρο Συγκρίσεων Λειτουργία συγκριτικών αλγορίθµων αναπαρίσταται µε δέντρο συγκρίσεων (ή αποφάσεων). Αλγόριθµος δέντρο συγκρίσεων. είσοδο: αλγ. ακολουθεί µοναδικό µονοπάτι από ρίζα σε φύλλο. Ταξινόµηση µε εισαγωγή Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 22

131 Δέντρο Συγκρίσεων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 23

132 Δέντρο Συγκρίσεων Ύψος δέντρου καθορίζει #συγκρίσεων (χ.π.) και αποτελεί κάτω φράγµα στο χρόνο εκτέλεσης. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 23

133 Δέντρο Συγκρίσεων Ύψος δέντρου καθορίζει #συγκρίσεων (χ.π.) και αποτελεί κάτω φράγµα στο χρόνο εκτέλεσης. Ταξινόµηση n στοιχείων: τουλάχιστον n! φύλλα (όλες µεταθέσεις). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 23

134 Δέντρο Συγκρίσεων Ύψος δέντρου καθορίζει #συγκρίσεων (χ.π.) και αποτελεί κάτω φράγµα στο χρόνο εκτέλεσης. Ταξινόµηση n στοιχείων: τουλάχιστον n! φύλλα (όλες µεταθέσεις). Δυαδικό δέντρο. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 23

135 Δέντρο Συγκρίσεων Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 24

136 Δέντρο Συγκρίσεων Δυαδικό δέντρο ύψους h έχει 2h φύλλα. Χρόνος εκτέλεσης = Ω(h). Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 24

137 Δέντρο Συγκρίσεων Δυαδικό δέντρο ύψους h έχει 2h φύλλα. Χρόνος εκτέλεσης = Ω(h). Ταξινόµηση n στοιχείων: 2 h n! Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 24

138 Δέντρο Συγκρίσεων Δυαδικό δέντρο ύψους h έχει 2h φύλλα. Χρόνος εκτέλεσης = Ω(h). Ταξινόµηση n στοιχείων: 2 h n! Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Ουρές Προτεραιότητας 24

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

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

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

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

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

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

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο Ουρές προτεραιότητας Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο αριθμός είναι μεγάλος, τόσο οι πελάτες

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

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Τι θα δούμε Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί Σωροί Ουρές Fibonacci Αναπαράσταση Πράξεις Ανάλυση Συγκρίσεις Ουρές προτεραιότητας

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

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

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

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

Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθμος ταξινόμησης HeapSort

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

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

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

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

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

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

Ουρά Προτεραιότητας (priority queue)

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή

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

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1 Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι

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

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

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

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

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010 Κεφάλαιο 2 Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση., 2/05/200 Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. Σωρός και Ταξινόµηση

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

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

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

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

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

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

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

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

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

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type).

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Ουρές προτεραιότητας Κεφάλαιο 9. Ε. Μαρκάκης Επίκουρος Καθηγητής

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

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

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

ταξινόμηση σωρού Παύλος Εφραιμίδης Δομές Δεδομένων και ταξινόμηση σωρού Παύλος Εφραιμίδης ταξινόμηση σωρού ταξινόμηση σωρού άλλος ένας αλγόριθμος ταξινόμησης πολυπλοκότητας O(n lgn) Ιδιαίτερα χαρακτηριστικά: χρησιμοποιεί μια δομή δεδομένων που ονομάζεται «σωρός»

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

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο Σχεδίαση Αλγορίθμων Άπληστοι Αλγόριθμοι http://delab.csd.auth.gr/~gounaris/courses/ad 1 Άπληστοι αλγόριθμοι Προβλήματα βελτιστοποίησης ηςλύνονται με μια σειρά επιλογών που είναι: εφικτές τοπικά βέλτιστες

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

υαδικά έντρα Αναζήτησης

υαδικά έντρα Αναζήτησης ηµήτρης Φωτάκης Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων Πανεπιστήµιο Αιγαίου υαδικά έντρα µε ρίζα. Κάθε εσωτερικός κόµβος περιέχει στοιχείο (αριθµό) και έχει δύο παιδιά. NULL-φύλλα

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Σωρός Μεγίστου ως ΑΤΔ Ένας σωρός μεγίστου (max heap) είναι ένας ΑΤΔ που

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

Ελαφρύτατες διαδρομές

Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Ελαφρύτατες διαδρομές Κατευθυνόμενο γράφημα Συνάρτηση βάρους Ελαφρύτατη διαδρομή από το u στο v : διαδρομή με και ελάχιστο βάρος s 3 t 7 x 5 3 y z Βάρος ελαφρύτατης διαδρομής εάν

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

Ουρά Προτεραιότητας (priority queue)

Ουρά Προτεραιότητας (priority queue) Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει τις ακόλουθες λειτουργίες PQinsert : εισαγωγή στοιχείου PQdelmax : επιστροφή του στοιχείου με το μεγαλύτερο* κλειδί και διαγραφή του

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

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

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

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

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

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

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

Αλγόριθµοι Γραφηµάτων

Αλγόριθµοι Γραφηµάτων Αλγόριθµοι Γραφηµάτων Παύλος Σπυράκης Πανεπιστήµιο Πατρών Τοµέας Θεµελιώσεων και Εφαρµογών της Επιστήµης των Υπολογιστών Ερευνητικό Ακαδηµαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών Γραφήµατα Μοντελοποίηση

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

Αναζήτηση Κατά Πλάτος

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

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

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

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

Ελάχιστο Συνδετικό έντρο

Ελάχιστο Συνδετικό έντρο Ελάχιστο Συνδετικό έντρο ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Ελάχιστο Συνδετικό έντρο (MST) Συνεκτικό μη-κατευθ. G(V, E, w) με βάρη Βάρος

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

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

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

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 26 Ιουνίου 201 1 / Απληστοι (Greedy) Αλγόριθµοι

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

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Γραμμικές Λίστες Βασικές Έννοιες Βασικές Έννοιες. Αναπαράσταση με τύπο και με δείκτη. Γραμμικές Λίστες. Βασικές Λειτουργίες. Δομές Δεδομένων: Βασικές Έννοιες Αντικείμενο

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 1 Εισαγωγή 1 / 14 Δομές Δεδομένων και Αλγόριθμοι Δομή Δεδομένων Δομή δεδομένων είναι ένα σύνολο αποθηκευμένων

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

Ελάχιστο Συνδετικό Δέντρο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου

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

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Δένδρα (Trees) Βασικές Έννοιες. Δυαδικά Δένδρα. Δυαδικά Δένδρα Αναζήτησης. AVL Δένδρα. Δένδρα: Βασικές Έννοιες Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Δένδρο: μοντέλο ιεραρχικής

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

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

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

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

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

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Συντομότατα μονοπάτια 2. Αλγόριθμος Bellman-Ford 3. Αλγόριθμος Dijkstra 4. Floyd-Warshall Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Single-Source Shortest Path Πρόβλημα:

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 3: Δένδρα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το

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

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές

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

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Γραφημάτων Αλγόριθμοι Γραφημάτων 1. Minimum Spanning Trees 2. Αλγόριθμος Prim 3. Αλγόριθμος Kruskal Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Minimum Spanning Tree Πρόβλημα: Για δοσμένο συνεκτικό, μη προσανατολισμένο,

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Prim-Kruskal Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Prim-Kruskal

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 18 Dijkstra s Shortest Path Algorithm 1 / 12 Ο αλγόριθμος εύρεσης της συντομότερης διαδρομής του Dijkstra

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

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του

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

Δοµές Δεδοµένων. 12η Διάλεξη Διάσχιση Δέντρων και Ουρές Προτεραιότητας. Ε. Μαρκάκης

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

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

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

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

Δομές Δεδομένων. Κεφάλαιο Εισαγωγή

Δομές Δεδομένων. Κεφάλαιο Εισαγωγή Κεφάλαιο 4 Δομές Δεδομένων 4.1 Εισαγωγή Όπως είναι γνωστό, για να εκτελεστεί ένας αλγόριθμος με H/Y θα πρέπει να γραφτεί σε μία αυστηρά ορισμένη γλώσσα Η/Υ. Αυτή η υλοποίηση του αλγόριθμου σε γλώσσα προγραμματισμού

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

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

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

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

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

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

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

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

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

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

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

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

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

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 4 Σωροί, Γράφοι

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

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

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές

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

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

Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Αλγόριθμοι Σωρών 1. Σωρός Μεγίστων 2. Ταξινόμηση με Σωρό 3. Σωρός Ελαχίστων Μεγίστων 4. Διπλός Σωρός Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ουρά Προτεραιότητας Η ουρά προτεραιότητας (prioiity

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

ιαφάνειες παρουσίασης #11

ιαφάνειες παρουσίασης #11 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

για NP-Δύσκολα Προβλήματα

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 11: Minimum Spanning Trees Αλγόριθμος Prim Αλγόριθμος Kruskal Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

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

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

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

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

#4. Heaps (σωροί), η ταξινόμηση HeapSort, η δομή std::priority_queue της STL

#4. Heaps (σωροί), η ταξινόμηση HeapSort, η δομή std::priority_queue της STL Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Δομές Δεδομένων και Αλγόριθμοι (εργαστήριο) Γκόγκος Χρήστος #4. Heaps (σωροί), η ταξινόμηση HeapSort,

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

Δομές Δεδομένων. Λουκάς Γεωργιάδης. Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δομή Δεδομένων: Μέθοδος αποθήκευσης

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 20 Huffman codes 1 / 12 Κωδικοποίηση σταθερού μήκους Αν χρησιμοποιηθεί κωδικοποίηση σταθερού μήκους δηλαδή

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

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

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

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

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

6η Διάλεξη Διάσχιση Γράφων και Δέντρων ΘΕΩΡΙΑ ΓΡΑΦΩΝ 6 η Διάλεξη Διάσχιση Γράφων και Δέντρων Αλγόριθμος αναζήτησης σε Βαθος Αλγόριθμος αναζήτησης κατά Πλάτος Αλγόριθμοι για Δένδρα Εύρεση ελαχίστων Γεννητορικών (Επικαλύπτοντα) Δένδρων Διάσχιση

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε

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

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Σχεδίαση Αλγορίθμων Μείωσε και Βασίλευε http://delab.csd.auth.gr/~gounaris/courses/ad auth gounaris/courses/ad Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1 Μείωσε και Βασίλευε 1. Μειώνουμε

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

Φίλη μαθήτρια, φίλε μαθητή

Φίλη μαθήτρια, φίλε μαθητή Φίλη μαθήτρια, φίλε μαθητή Στο ένθετο αυτό παρουσιάζεται μία επιπλέον ενότητα, η οποία συμπληρώνει την εξεταστέα ύλη των πανελλαδικών εξετάσεων για το σχολικό έτος 2015 2016. Η φιλοσοφία παρουσίασης της

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα 7: Αφαίρεση δεδόμενων Πασχαλίδης Δημοσθένης Τμήμα Διαχείρισης Εκκλησιαστικών Κειμηλίων Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 1 / 42 Εύρεση Ελάχιστου Μονοπατιού

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

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

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

Συλλογές, Στοίβες και Ουρές

Συλλογές, Στοίβες και Ουρές Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει

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

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

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

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

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες Κατευθυνόμενο γράφημα Συνάρτηση χωρητικότητας 12 16 2 Ροή δικτύου Συνάρτηση αφετηρίακός κόμβος 13 1 με τις ακόλουθες ιδιότητες 4 14 9 7 4 τερματικός κόμβος Περιορισμός χωρητικότητας: Αντισυμμετρία: Διατήρηση

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

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

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

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

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00 Χρήστος. Ζαρολιάγκης Τεχνολογίες Υλοποίησης Αλγορίθµων : Άσκηση 1 1 Ασκηση 1 [16.03.2016] Παράδοση : Τετάρτη 13.04.2016, 13:00 Η παρούσα άσκηση αφορά στον έλεγχο διµερότητας ενός γραφήµατος. Σκοπός της

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

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

ΑΛΓΟΡΙΘΜΟΙ  Άνοιξη I. ΜΗΛΗΣ ΑΛΓΟΡΙΘΜΟΙ http://eclass.aueb.gr/courses/inf161/ Άνοιξη 2016 - I. ΜΗΛΗΣ ΠΑΡΑΔΕΙΓΜΑΤΑ ΑΛΓΟΡΙΘΜΩΝ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ ΑΛΓΟΡΙΘΜΟΙ - ΑΝΟΙΞΗ 2016 - Ι. ΜΗΛΗΣ - 03 - EXAMPLES ALG & COMPL 1 Example: GCD συνάρτηση

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

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

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

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

Advanced Data Indexing

Advanced Data Indexing Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Αναζήτηση Δέντρα (2 ο Μέρος) Διαχρονικά -Δέντρα (Persistent -trees) Σε μερικές εφαρμογές βάσεων/δομών δεδομένων όπου γίνονται ενημερώσεις μας ενδιαφέρει

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

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Δέντρα Δυαδικά Δέντρα Δυαδικά Δέντρα Αναζήτησης (inary Search Trees) http://aetos.it.teithe.gr/~demos/teaching_r.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

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

Δημιουργία Δυαδικών Δέντρων Αναζήτησης

Δημιουργία Δυαδικών Δέντρων Αναζήτησης Δημιουργία Δυαδικών Δέντρων Αναζήτησης Τα Δυαδικά δέντρα αναζήτησης είναι διατεταγμένα δυαδικά δέντρα όπου έχει σημασία η διάταξη των παιδιών κάθε κόμβου. Συγκεκριμένα για τα Δυαδικά δέντρα αναζήτησης,

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

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

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

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

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών

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