Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

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

Download "Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης"

Transcript

1 Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με διάφορες υποκείμενες δομές Υλοποίηση με Ταξινομημένο Πίνακα: Απομάκρυνση του μεγαλύτερου στοιχείου γρήγορα O(1). Εισαγωγή διαρκεί περισσότερο χρόνο O(n). Πρέπει να μετακινηθούν O(n) στοιχεία του πίνακα, για να εισαχθεί το νέο στοιχείο στη σωστή θέση. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 1 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 2 / 57 Σωρός (Εισαγωγή) Υλοποίηση Σωρού Ενας σωρός είναι πλήρες δυαδικό δέντρο με τα εξής χαρακτηριστικά: Κάθε επίπεδο είναι πλήρως συμπληρωμένο, από αριστερά προς δεξιά. Το τελευταίο επίπεδο δε χρειάζεται να είναι συμπληρωμένο. Κάθε κόμβος σ ένα σωρό ικανοποιεί τη συνθήκη σωρού: Συνήθως υλοποιείται με πίνακα. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 3 / Κόμβος με αριθμό δείκτη : Αριστερό Παιδί: +. Δεξιό Παιδί: +. γονέας του : ( )/ Πλήρες δυαδικό δέντρο που αναπαριστά το σωρό και υλοποίηση με πίνακα. Ο πίνακας αποθηκεύεται στη μνήμη: ο σωρός είναι μόνο μία απεικόνιση. Σαν συνέπεια της πληρότητας του δέντρου, ο πίνακας δεν έχει κενές θέσεις. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 4 / 57

2 Ουρές Προτεραιότητας & Σωροί Υλοποίηση Ουράς Προτεραιότητας με Σωρό Heap { Οι σωροί κυρίως υλοποιούν ουρές προτεραιότητας. Στη συνέχεια, για την υλοποίηση ουράς προτεραιότητας με σωρό: θεωρούμε ότι το μέγιστο κλειδί βρίσκεται στην αρχή της ουράς. Η κλάση κόμβου σωρού: Node { i D a t a ;.... Node heaparray [ ] ; i n s e r t ( Node nd ) { Node remove ( ) { P r i o r i t y Q u e u e { Heap theheap ; i n s e r t ( Node nd ) { theheap. i n s e r t ( nd ) ; Node remove ( ) { theheap. remove ( ) ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 5 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 6 / 57 Σύγκριση με ΔΔΑ Διαγραφή (1/2) Σε κάθε κόμβο ΔΔΑ: οι αριστεροί του απόγονοι έχουν μικρότερα κλειδιά, οι δεξιοί του απόγονοι έχουν μεγαλύτερα κλειδιά. Ο σωρός είναι ασθενώς ταξινομημένος (weakly ordered). Σε σωρό δεν είναι εύκολη η διάσχιση (traversal) με αύξουσα σειρά. Αναζήτηση/Διαγραφή Στοιχείου με τιμή κλειδιού όχι αποδοτικές. Απομάκρυνση (διαγραφή) στοιχείου Αφαίρεση του κόμβου με το μέγιστο κλειδί. Ο κόμβος προς διαγραφή είναι πάντα η ρίζα, heaparray[0]. Με τη διαγραφή της ρίζα το δέντρο δεν θα είναι πλήρες: θα έχουμε κενό κελί, ενδιαμέσως άλλων στοιχείων. Μόνο εισαγωγή και απομάκρυνση max/min στοιχείου αποδοτικές. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 7 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 8 / 57

3 Διαγραφή (2/2) Απομάκρυνση του Μέγιστου Κόμβου (Ρίζα) Απομάκρυνση ρίζας Μετακίνηση κόμβου στη ρίζα κόμβος στο κατειλημμένο του δέντρου. Αντιγραφή κόμβου στη ρίζα: heaparray[0] = heaparray[n 1]; N ; Καθοδική πορεία του τελευταίου κόμβου μέχρι να βρεθεί κάτω από έναν κόμβο με μεγαλύτερο κλειδί και πάνω από έναν κόμβο με μικρότερο (ώστε να ικανοποιείται η συνθήκη σωρού) Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 9 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 10 / 57 Αντιμετάθεση Κόμβου για Αποκατάσταση της Ιδιότητας του Σωρού μετά από Διαγραφή Εισαγωγή (1/2) Αντιμετάθεση του κόμβου προορισμού με το μεγαλύτερο παιδί. Αντιμετάθεση με μικρότερο ίσως παραβιάσει την ιδιότητα σωρού. Το παιδί θα γίνει γονέας ενός μεγαλύτερου παιδιού. Ο εισαγόμενος κόμβος τοποθετείται στην 1η ανοιχτή θέση στο τέλος του πίνακα. heaparray [N] = newnode ; N+ + ; Είναι πιθανό να παραβιαστεί η συνθήκη σωρού. Κλειδί του νέου κόμβου > κλειδί νέου γονέα. Ο νέος κόμβος θα πρέπει να κινηθεί προς τα πάνω μέχρι να βρεθεί κάτω από κόμβο με μεγαλύτερο κλειδί και πάνω από κόμβο με μικρότερο. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 11 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 12 / 57

4 Εισαγωγή (2/2) Δε Γίνεται Αντιμετάθεση στην Πραγματικότητα αντιμετάθεση 3 αντιγραφές. Στο παράδειγμα (β): Αντιμετάθεση 2. Αντιμετάθεση B C 3. Αντιμετάθεση D A 2. Αντιγραφή A 3. Αντιγραφή B 1. Αντιγραφή C 4. Αντιγραφή tmp D 5. Αντιγραφή Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 13 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 14 / 57 Η Κλάση Node Η Κλάση Heap Heap { Node { i D a t a ; Node ( key ) { i D a t a = key ; getkey ( ) { i D a t a ; s e t K e y ( i d ) { i D a t a = i d ; Node [ ] heaparray ; maxsize ; c u r r e n t S i z e ; Heap ( mx ) { maxsize = mx ; c u r r e n t S i z e = 0 ; heaparray = Node [ maxsize ] ; isempty ( ) { c u r r e n t S i z e = =0; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 15 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 16 / 57

5 Η Μέθοδος insert() Η Μέθοδος trickleup() t r i c k l e U p ( i n d e x ) { i n s e r t ( key ) { p a r e n t = ( index 1) / 2 ; ( c u r r e n t S i z e == maxsize ) ; Node newnode = Node ( key ) ; heaparray [ c u r r e n t S i z e ] = newnode ; t r i c k l e U p ( c u r r e n t S i z e + +) ; ; Node bottom = heaparray [ i n d e x ] ; ( i n d e x > 0 && heaparray [ p a r e n t ]. getkey ( ) < bottom. getkey ( ) ) { heaparray [ i n d e x ] = heaparray [ p a r e n t ] ; i n d e x = p a r e n t ; p a r e n t = ( parent 1) / 2 ; heaparray [ i n d e x ] = bottom ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 17 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 18 / 57 Η Μέθοδος remove() Node remove ( ) { Node r o o t = heaparray [ 0 ] ; heaparray [ 0 ] = heaparray[ c u r r e n t S i z e ] ; t r i c k l e D o w n ( 0 ) ; r o o t ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 19 / 57 Η Μέθοδος trickledown() t r i c k l e D o w n ( i n d e x ) { l a r g e r C h i l d ; Node top = heaparray [ i n d e x ] ; ( i n d e x < c u r r e n t S i z e / 2 ) { l e f t C h i l d = 2 * i n d e x +1, r i g h t C h i l d = l e f t C h i l d + 1 ; ( r i g h t C h i l d < c u r r e n t S i z e && heaparray [ l e f t C h i l d ]. getkey ( ) < heaparray [ r i g h t C h i l d ]. getkey ( ) ) l a r g e r C h i l d = r i g h t C h i l d ; l a r g e r C h i l d = l e f t C h i l d ; ( top. getkey ( ) >= heaparray [ l a r g e r C h i l d ]. getkey ( ) ) ; heaparray [ i n d e x ] = heaparray [ l a r g e r C h i l d ] ; i n d e x = l a r g e r C h i l d ; heaparray [ i n d e x ] = top ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 20 / 57

6 Απόδοση Λειτουργιών Σωρού HeapSort Αλγόριθμος Ταξινόμησης Χρονοβόροι Αλγόριθμοι: trickleup /ανοδικός, trickledown/καθοδικός. Πλήθος απαιτούμενων αντιγραφών ανάλογο του ύψους του δέντρου: Π.χ. για 5 επίπεδα απαιτούνται 4 αντιγραφές. TrickleUp: 1 σύγκριση νέου κόμβου με κόμβο στην τρέχουσα θέση. TrickleDown: 2 συγκρίσεις μία για την εύρεση του μεγαλύτερου παιδιού μία για τη σύγκριση του παιδιού με τον τελευταίο κόμβο. Το ύψος του δέντρου είναι log(n + 1) όπου n το πλήθος των κόμβων. Αρα η πολυπλοκότητα των δύο μεθόδων είναι O(log n). Δημιουργία σωρού Εισαγωγή στοιχείων 7, 1, 8, 0, 6, 2, 9, 4 σε σωρό Απομάκρυνση του max/min από το σωρό (άρα σε ταξινομημένη σειρά) και εγγραφή του σε πίνακα Διαγραφή πάντα από ρίζα Πολυπλοκότητα: O(n log n) Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 21 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 22 / 57 Αναδρομή & Ταξινόμηση Εισαγωγή Η () είναι τεχνική προγραμματισμού όπου: γνωρίζεις, την απάντηση. Εντόπισε κάποιον που γνωρίζει περισσότερα από εσένα. Ζήτησέ του να εκτελέσει: την απάντησή του. μια μέθοδος/συνάρτηση/διαδικασία καλεί τον εαυτό της. Ιδιαίτερα ενδιαφέρουσα και αποτελεσματική τεχνική: για την ευσύνοπτη και κομψή διατύπωση αλγορίθμων, για την καταγραφή μικρών και ευανάγνωστων προγραμμάτων, για την περιγραφή λύσεων σε προβλήματα. Θεμελιώδες πλαίσιο για την επίλυση πολλών προβλημάτων Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 23 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 24 / 57

7 Μηχανισμός Αναδρομικών Μεθόδων Αναδρομή σε Μαθηματικούς Ορισμούς Μια αναδρομική μέθοδος καλεί τον εαυτό της: με «μικρότερο» όρισμα, δηλαδή, μικρότερο/ευκολότερο υπο-πρόβλημα, για να λύσει αυτό το μικρότερο υπο-πρόβλημα πρώτα. Υπάρχει αρκετά μικρή εκδοχή του προβλήματος που έχει απλή λύση: χωρίς η μέθοδος να καλέσει τον και πάλι τον εαυτό της. Οταν το όρισμα μιας αναδρομικής κλήσης γίνει αρκετά «μικρό»: αυτό ελέγχεται με μια συνθήκη: ή η μέθοδος επιστρέφει μια λύση χωρίς επιπλέον αναδρομική κλήση. Ο n είναι φυσικός αριθμός, αν ο n 1 είναι φυσικός αριθμός. Το 0 είναι φυσικός αριθμός ( ). factorial(n) = 1 αν n = 1 factorial(n) = n factorial(n 1) αν n > 1 { 1 αν n = 0 x n = x x n 1 αν n > 0 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 25 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 26 / 57 Αναδρομή σε Μαθηματικούς Ορισμούς f a c t o r i a l ( n ) { ( n ==0) 1 ; n * f a c t o r i a l ( n 1) ; power ( x, n ) { ( n == 0 ) 1. 0 ; ( x * power ( x, n 1) ) ; Παραδείγματα Εστω ( ), ( ) αριστερό και δεξιό παιδί του, αντίστοιχα. =, τότε. =, τότε. <, τότε ( ) >, τότε ( ) =, τότε. =, τότε. Θέσε := επόμενος( ). Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 27 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 28 / 57

8 Αναδρομική Δυαδική Αναζήτηση Η Απόδοση της Αναδρομής r e c F i n d ( searchkey, lowbound, upbound ) { c u r I n = ( lowbound + upbound ) / 2 ; ( a [ c u r I n ] == s e a r c h K e y ) c u r I n ; ( lowbound > upbound ) nelems ; { ( a [ c u r I n ] < s e a r c h K e y ) r e c F i n d ( searchkey, c u r I n +1, upbound ) ; r e c F i n d ( searchkey, lowbound, c u r I n 1) ; Η κλήση μιας μεθόδου επιφέρει κάποια καθυστέρηση. Επίσης, τα ορίσματα στη μέθοδο και η διεύθυνση στην οποία η μέθοδος πρέπει να επιστρέψει εισάγονται σε μια εσωτερική στοίβα. Μπορεί η αναδρομή να επιφέρει μια επιβάρυνση στο χρόνο εκτέλεσης. Η αναδρομή χρησιμοποιεί επιπλέον μνήμη για την αποθήκευση των ορισμάτων και των τιμών επιστροφής στην εσωτερική στοίβα. Εάν η ποσότητα των δεδομένων είναι μεγάλη, μπορεί να συμβεί υπερχείλιση στοίβας. Η αναδρομή χρησιμοποιείται επειδή απλοποιεί ένα πρόβλημα, όχι επειδή είναι πιο αποτελεσματική. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 29 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 30 / 57 Περιπτώσεις μη Αποδοτικής Αναδρομής (1/2) Περιπτώσεις μη Αποδοτικής Αναδρομής (2/2) : 0 αν n = 0 F (n) = 1 αν n = 1 F (n 1) + F (n 2) αν n 2 f i b ( n ) { ( n <= 1 ) n ; f i b ( n 1) + f i b ( n 2) ; ( ) F (4) ( ) F (5) ( ) ( ) ( ) Υπολογίζουμε το fib(n) με αναδρομική κλήση fib(n-1). ( ) ( ) ( ) F (0) ( ) F (0) Οταν η αναδρομική κλήση επιστρέψει, εκτελούμε την fib(n-2). To fib(n-2) έχει όμως ήδη υπολογιστεί, με την 1η αναδρομική κλήση εντός της κλήσης fib(n-1)!!! ( ) F (0) Υπολογίζουμε: το F (3) 2 φορές, το F (2) 3 φορές, το F (1) 5 φορές!!!. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 31 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 32 / 57

9 Αλγόριθμοι Διαίρει και Βασίλευε (Divide and Conquer) Ταξινόμηση Συγχώνευσης (MergeSort) Aναδρομική Δυαδική Αναζήτηση: παράδειγμα της προσέγγισης Διαιρούμε το πρόβλημα σε δύο μικρότερα: επιλύουμε αναδρομικά το καθένα ξεχωριστά. «συνδυάζουμε» τις λύσεις για την επίλυση του αρχικού προβλήματος. Με αναδρομικές υποδιαιρέσεις του προβλήματος: Μεταξύ των βέλτιστων αλγορίθμων ταξινόμησης. Το ίδιο και οι AVLSort, HeapSort - Πολυπλοκότητα: O(n log n) Οι υπόλοιποι αλγόριθμοι που έχουμε δει έχουν πολυπλοκότητα O(n 2 ). Η MergeSort είναι σχετικά απλή στην υλοποίησή της. δεν κάνει επί τόπου (in-place) ταξινόμηση. Απαιτεί επιπλέον πίνακα, ίσο σε μέγεθος με αυτόν που ταξινομείται. καταλήγουμε σε μικρές βασικές περιπτώσεις του, στις οποίες η απάντηση βρίσκεται χωρίς περαιτέρω υποδιαίρεση. Η AVLSort απαιτεί δομή δέντρου AVL για την υλοποίησή της. Η HeapSort απαιτεί δομή σωρού για την υλοποίησή της. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 33 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 34 / 57 Βασική Ιδέα: Συγχώνευση Ταξινομημένων Πινάκων Συγχώνευση δύο ταξινομημένων πινάκων A και B σε τρίτο πίνακα C: που περιέχει όλα τα στοιχεία των A και B ταξινομημένα. Υποθέστε ότι αρχικά ο C είναι κενός. Το σχήμα δείχνει τον C μετά τη διαδικασία συγχώνευσης Η Μέθοδος Συγχώνευσης merge ( [ ] arraya, s i z e A, [ ] arrayb, s i z e B, [ ] a r r a y C ) { adex =0, bdex =0, cdex = 0 ; ( adex < s i z e A && bdex < s i z e B ) ( a r r a y A [ adex ] < a r r a y B [ bdex ] ) a r r a y C [ cdex ++] = a r r a y A [ adex + + ] ; a r r a y C [ cdex ++] = a r r a y B [ bdex + + ] ; ( adex < s i z e A ) a r r a y C [ cdex ++] = a r r a y A [ adex + + ] ; ( bdex < s i z e B ) a r r a y C [ cdex ++] = a r r a y B [ bdex + + ] ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 35 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 36 / 57

10 Παράδειγμα MergeSort Παράδειγμα MergeSort «Στάδιο» συγχωνεύσεων του πίνακα προς ταξινόμηση: οι αναδρομικές κλήσεις συγχωνεύουν και επιστρέφουν. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 37 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 38 / 57 Υλοποίηση MergeSort Κλήση: recmergesort(workspace,0,nelems-1) MergeSortApp { [ ] t h e A r r a y ; main ( S t r i n g [ ] a r g s ) { mergesort ( t h e A r r a y. l e n g t h ) ; mergesort ( nelems ) { [ ] workspace = [ nelems ] ; recmergesort ( workspace, 0, nelems 1) ; Χρησιμοποιείται βοηθητικός πίνακας «εργασίας» workspace ίσου μεγέθους: recmergesort ( [ ] workspace, lowerbound, upperbound ) { ( lowerbound == upperbound ) ; { mid = ( lowerbound + upperbound ) / 2 ; recmergesort ( workspace, lowerbound, mid ) ; recmergesort ( workspace, mid +1, upperbound ) ; merge ( workspace, lowerbound, mid +1, upperbound ) ; για προσωρινή αποθήκευση των υποπινάκων που δημιουργούνται. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 39 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 40 / 57

11 Τροποποιημένη merge() merge ( [ ] workspace, lowptr, h i g h P t r, upperbound ) { j = 0 ; lowerbound = l o w P t r ; mid = h i g h P t r 1; n = upperbound lowerbound + 1 ; ( l o w P t r <= mid && h i g h P t r <= upperbound ) ( t h e A r r a y [ l o w P t r ] < t h e A r r a y [ h i g h P t r ] ) workspace [ j ++] = t h e A r r a y [ l o w P t r + + ] ; workspace [ j ++] = t h e A r r a y [ h i g h P t r + + ] ; ( l o w P t r <= mid ) workspace [ j ++] = t h e A r r a y [ l o w P t r + + ] ; ( h i g h P t r <= upperbound ) workspace [ j ++] = t h e A r r a y [ h i g h P t r + + ] ; Απόδοση Ταξινόμησης Συγχώνευσης Αριθμός αντιγραφών: Ανάλογος του O(n log n). Για ταξινόμηση n στοιχείων χρειαζόμαστε O(log n) επίπεδα και σε κάθε επίπεδο n αντιγραφές. Αριθμός συγκρίσεων: Είναι πάντα λίγο μικρότερος από τον αριθμό των αντιγραφών. Για κάθε κλήση της merge() απαιτούνται τουλάχιστον n/2 και το πολύ n 1 συγκρίσεις, όπου n το πλήθος των στοιχείων που συγχωνεύονται. ( j = 0 ; j <n ; j ++) t h e A r r a y [ lowerbound + j ] = workspace [ j ] ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 41 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 42 / 57 Τι Ξέρουμε Μέχρι Τώρα; Ταξινόμηση χρόνου O(n 2 ): BubbleSort, Selec onsort, Inser onsort Απλές στην υλοποίηση. Με χρήση αναδρομής (MergeSort) χρόνος O(n log n). Ομως απαιτεί διπλάσιο χώρο του αρχικού πίνακα. Θα εξετάσουμε μια νέα μέθοδς ταξινόμησης, την Quicksort: Δεν απαιτεί επιπλέον χώρο. O(n 2 ) στη χειρότερη περίπτωση, αλλά είναι σπάνιο και «ελέγξιμο». O(n log n) χρόνος πάνω από ομοιόμορφα τυχαία διάταξη στοιχείων. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 43 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 44 / 57

12 Ταξινόμηση QuickSort Αλγόριθμος Διαμέρισης Χρησιμοποιεί δύο δείκτες, έναν σε κάθε άκρη του πίνακα. Στηρίζεται στην έννοια του διαχωρισμού (διαμέρισης) par on. Ο διαχωρισμός δεδομένων είναι η διαίρεσή τους σε 2 ομάδες ώστε: μία ομάδα περιέχει στοιχεία με κλειδί μικρότερο από συγκεκριμένη τιμή η άλλη περιέχει στοιχεία με κλειδί μεγαλύτερο από τη συγκεκριμένη τιμή Το στοιχείο με τη συγκεκριμένη τιμή λέγεται ( ). ο () κινείται,, διαφορετικά, σταματά. ( ), διαφορετικά, σταματά. Εκεί που σταματούν και οι δύο, αντιμετατίθενται τα στοιχεία (swap). Η διαδικασία συνεχίζεται, Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 45 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 46 / 57 Παράδειγμα (1/2) Παράδειγμα (2/2) Ο σταματά στο 8 > 6. O σταματά στο 2 < 6: Τα στοιχεία 2 και 8 αντιμετατίθενται: Ο σταματά στο 9 > 6. O σταματά στο 5 < Τα στοιχεία 9 και 5 αντιμετατίθενται: Οι δείκτες και διασταυρώνονται: Αντιμετάθεση του στοιχείου που «δείχνει» ο με το : Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 47 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 48 / 57

13 p a r t i t i o n I t ( l e f t, r i g h t, p i v o t ) { l e f t P t r = l e f t 1; r i g h t P t r = r i g h t ; ( ) { ( t h e A r r a y [++ l e f t P t r ] < p i v o t ) ; ( r i g h t P t r > 0 && t h e A r r a y[ r i g h t P t r ] > p i v o t ) ; ( l e f t P t r >= r i g h t P t r ) ; swap ( l e f t P t r, r i g h t P t r ) ; swap ( l e f t P t r, r i g h t ) ; l e f t P t r ; Απόδοση του Αλγορίθμου Διαμέρισης Χρόνος εκτέλεσης: O(n). Αριθμός συγκρίσεων: n + 1 ή n + 2. Αριθμός αντιμεταθέσεων: n/2 (χειρότερη περίπτωση). Κατά μέσο όρο για είσοδο σε τυχαία σειρά επιλεγμένη από την ομοιόμορφη κατανομή, γίνονται περίπου οι μισές του μέγιστου αριθμού αντιμεταθέσεων. Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 49 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 50 / 57 QuickSort Παράδειγμα Αναδρομικής Εκτέλεσης διαχωρίζει έναν πίνακα σε δύο υποπίνακες, καλεί τον εαυτό του για να ταξινομήσει τον κάθε υποπίνακα. Η τιμή του πρέπει να είναι τιμή κλειδιού ενός υπαρκτού στοιχείου. Μπορεί π.χ. να επιλέγεται τυχαία και ομοιόμορφα από τον πίνακα. - Μετά το διαχωρισμό, αν το pivot τοποθετηθεί μεταξύ του αριστερού και του δεξιού υποπίνακα, θα βρίσκεται στην τελική του θέση Στάδιο Διαμερίσεων (μέσω αναδρομικών κλήσεων) Στάδιο «ανασυστάσεων» (με επιστροφές από τις αναδρομικές κλήσεις). Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 51 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 52 / 57

14 p a r t i t i o n I t ( l e f t, r i g h t, p i v o t ) { r e c Q u i c k S o r t ( l e f t, r i g h t ) { ( r i g h t l e f t <= 0 ) ; { p i v o t = t h e A r r a y [ r i g h t ] ; p a r t i t i o n = p a r t i t i o n I t ( l e f t, r i g h t, p i v o t ) ; r e c Q u i c k S o r t ( l e f t, p a r t i t i o n 1) ; r e c Q u i c k S o r t ( p a r t i t i o n +1, r i g h t ) ; l e f t P t r = l e f t 1; r i g h t P t r = r i g h t ; ( ) { ( t h e A r r a y [++ l e f t P t r ] < p i v o t ) ; ( r i g h t P t r > 0 && t h e A r r a y[ r i g h t P t r ] > p i v o t ) ; ( l e f t P t r >= r i g h t P t r ) ; swap ( l e f t P t r, r i g h t P t r ) ; swap ( l e f t P t r, r i g h t ) ; l e f t P t r ; Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 53 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 54 / 57 Η Επιλογή του Pivot Απόδοση της QuickSort Για αντίστροφα ταξινομημένο πίνακα: η απόδοση είναι O(n 2 ). Το πρόβλημα είναι η επιλογή του pivot. Ιδανικά, το pivot θα ήταν το μεσαίο των στοιχείων που ταξινομούνται. Αυτό θα έδινε διαχωρισμό του πίνακα σε δύο υποπίνακες ίσου μεγέθους. Αυτή είναι η ιδανική περίπτωση για την QuickSort. Χειρότερη περίπτωση: διαχωρισμός σε 1 και n 1 στοιχεία. Αλλοι τρόποι επιλογής pivot? Σπάνια συμβαίνει η χειρότερη περίπτωση. Οταν η είσοδος είναι σε τυχαία και ομοιόμορφα επιλεγμένη σειρά: εκτελείται σε χρόνο O(n log n). (Αναμενόμενος) Αριθμός συγκρίσεων: (n + 2) log n. (Αναμενόμενος) Αριθμός αντιμεταθέσεων: (n/2) log n. Μέσος εκ των τριών (αριστερό, μεσαίο και δεξιό στοιχείο) Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 55 / 57 Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 56 / 57

15 Σύνοψη Αλγορίθμων Ταξινόμησης O(n2 ) O(n log n) O(n 2 ) Αλγόριθμοι που εκτελούν ταξινόμηση επί τόπου (in-place). Αλγόριθμοι που χρειάζονται επιπλέον χώρο (μνήμη) Η MergeSort χρειάζεται επιπλέον πίνακα. Η AVLSort, Δέντρο AVL. Η έχει εκτέλεσης ( log ), για ομοιόμορφα τυχαία διάταξη των στοιχείων εισόδου. Χρησιμοποιείται ευρύτατα στην πράξη. Η είναι τελείως θεωρητικής αξίας, Ο. Τελέλης - Πανεπιστήμιο Πειραιώς Σωροί / Αναδρομή Ταξινόμηση 57 / 57

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση

8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 8. Σωροί (Heaps)-Αναδρομή- Προχωρημένη Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων

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

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.

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

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων

Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων Ταξινόμηση: Εισαγωγικά Ταξινόμηση (Sor ng) Ορέστης Τελέλης Βασικό πρόβλημα για την Επιστήμη των Υπολογιστών. π.χ. αλφαβητική σειρά, πωλήσεις ανά τιμή, πόλεις με βάση πληθυσμό, Μπορεί να είναι ένα πρώτο

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

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η

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

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης Σύνοψη Προηγούμενου Λίστες (Lists) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Στοίβες (Stacks) : στην κορυφή της στοίβας ( ) από την κορυφή της στοίβας ( ) Ουρές

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

Αλγόριθμοι Ταξινόμησης Μέρος 2

Αλγόριθμοι Ταξινόμησης Μέρος 2 Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2

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

Ταξινόμηση με συγχώνευση Merge Sort

Ταξινόμηση με συγχώνευση Merge Sort Ταξινόμηση με συγχώνευση Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 Πληροφορικής 1 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων

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

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

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 12. Ανασκόπηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 13/01/2017 Εξεταστέα Ύλη

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

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

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

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

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

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

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

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

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

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

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1

Merge Sort (Ταξινόμηση με συγχώνευση) 6/14/2007 3:04 AM Merge Sort 1 Merge Sort (Ταξινόμηση με συγχώνευση) 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 6/14/2007 3:04 AM Merge Sort 1 Κύρια σημεία για μελέτη Το παράδειγμα του «διαίρει και βασίλευε» ( 4.1.1) Merge-sort

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

Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι

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

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

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Κεφάλαιο 2 Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Σωρός και Ταξινόμηση

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

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

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

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

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

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

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

9. Κόκκινα-Μαύρα Δέντρα

9. Κόκκινα-Μαύρα Δέντρα Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 9. Κόκκινα-Μαύρα Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 9/12/2016 Δέντρα,

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

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

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

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

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

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

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

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

Διάλεξη 18: B-Δένδρα

Διάλεξη 18: B-Δένδρα Διάλεξη 18: B-Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή & Ισοζυγισμένα Δένδρα 2-3 Δένδρα, Περιγραφή Πράξεων της Εισαγωγής και άλλες πράξεις Β-δένδρα Διδάσκων: Κωνσταντίνος

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

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

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

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

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1

Ο αλγόριθμος Quick-Sort. 6/14/2007 3:42 AM Quick-Sort 1 Ο αλγόριθμος Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 6/14/2007 3:42 AM Quick-Sort 1 Κύρια σημεία για μελέτη Quick-sort ( 4.3) Αλγόριθμος Partition step Δέντρο Quick-sort Παράδειγμα εκτέλεσης

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:

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

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

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

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

4. Συνδεδεμένες Λίστες

4. Συνδεδεμένες Λίστες Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 4. Συνδεδεμένες Λίστες 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 10/11/2016 Εισαγωγή

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 4

Αλγόριθμοι Ταξινόμησης Μέρος 4 Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να

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

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

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

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

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

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

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

Δομές Δεδομένων & Αλγόριθμοι Σωροί 1 Ορισμοί Ένα δέντρο μεγίστων (δένδρο ελαχίστων) είναι ένα δένδρο, όπου η τιμή κάθε κόμβου είναι μεγαλύτερη (μικρότερη) ή ίση με των τιμών των παιδιών του Ένας σωρός μεγίστων (σωρός ελαχίστων) είναι

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

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

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:

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

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Συγχωνευτική Ταξινόμηση (Merge Sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4

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

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

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

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

Ταχεία Ταξινόμηση Quick-Sort

Ταχεία Ταξινόμηση Quick-Sort Ταχεία Ταξινόμηση Quc-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο Γνώσης και Ευφυούς Πληροφορικής 1 Outlne Quc-sort Αλγόριθμος Βήμα διαχωρισμού Δένδρο Quc-sort

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

Κεφάλαιο 6 Ουρές Προτεραιότητας

Κεφάλαιο 6 Ουρές Προτεραιότητας Κεφάλαιο 6 Ουρές Προτεραιότητας Περιεχόμενα 6.1 Ο αφηρημένος τύπος δεδομένων ουράς προτεραιότητας... 114 6.2 Ουρές προτεραιότητας με στοιχειώδεις δομές δεδομένων... 115 6.3 Δυαδικός σωρός... 116 6.3.1

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

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

Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα υαδικά έντρα Αναζήτησης ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη Ισοζυγισμένα υαδικά έντρα Αναζήτησης Ισοζυγισμένα Α είναι

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

σωροί ταξινόμηση σωρού οόροςheap σωρός (heap) συστοιχία Α για έναν σωρό μια δομή δεδομένων που πχ.

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

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

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2

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

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

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

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

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

Heapsort Using Multiple Heaps

Heapsort Using Multiple Heaps sort sort Using Multiple s. Λεβεντέας Χ. Ζαρολιάγκης Τµήµα Μηχανικών Η/Υ & Πληροφορικής 29 Αυγούστου 2008 sort 1 Ορισµός ify Build- 2 sort Πως δουλεύει Ιδιότητες 3 4 Προβλήµατα Προτάσεις Ανάλυση Κόστους

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

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

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

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

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

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

Ουρές προτεραιότητας

Ουρές προτεραιότητας Ουρές προτεραιότητας Πελάτες... στο ταµείο µιας τράπεζας Κάθε πελάτης µε ένα νούµερο/αριθµός προτεραιότητας! Όσοοαριθµός είναι µεγάλος, τόσο οι πελάτες είναι πιο ενδιαφέροντες(!) ένα µόνο ταµείο ανοικτό

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

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

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

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

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

Αλγόριθμοι ταξινόμησης Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης BuubleSort, SelectionSort, InsertionSort, Merger Sort, Quick Soft ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι

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

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση

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

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

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

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

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

Ταξινόμηση. 1. Στατιστικά Διάταξης 2. Στατιστικά σε Μέσο Γραμμικό Χρόνο. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Στατιστικά Διάταξης. Στατιστικά σε Μέσο Γραμμικό Χρόνο Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Στατιστικά Διάταξης Με τον όρο στατιστικά διάταξης (order statistics) εννοούμε την περίπτωση

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

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

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

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

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

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

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

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης Δένδρα στα οποία κάθε κόμβος μπορεί να αποθηκεύει ένα ή περισσότερα κλειδιά. Κόμβος με d διακλαδώσεις : k 1 k 2 k 3 k 4 d-1 διατεταγμένα κλειδιά d διατεταγμένα παιδιά

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

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

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

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

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

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

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

Διάλεξη 14: Δέντρα IV - B-Δένδρα

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

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

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Ταχυταξινόμηση (Quick-Sort) 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 14: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης 3) Mergesort Ταξινόμηση με Συγχώνευση 4) BucketSort Ταξινόμηση με Κάδους Διδάσκων:

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

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

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

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

Κεφάλαιο 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. Σωρός και Ταξινόµηση

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

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

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

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

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

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

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

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

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

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

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

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

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

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

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

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

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

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

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort 1, c 3, a 3, b 7, d 7, g 7, e B 0 1 3 4 5 6 7 8 9 1 BucketSort (Ταξινόμηση Κάδου) - Αρχικά θεωρείται ένα κριτήριο κατανομής με βάση το οποίο

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

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

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

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

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

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

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

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ Δομές Δεδομένων Παπαγιαννόπουλος Δημήτριος 30 Μαρτίου 2017 18 Μαΐου 2017 papagianno@ceid.upatras.gr 1 Περιεχόμενα Ουρές προτεραιότητας Πράξεις Διωνυμικές Ουρές Διωνυμικά Δέντρα Διωνυμικοί

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας

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

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης

Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Κεφάλαιο 8 Ισορροπημένα Δένδρα Αναζήτησης Περιεχόμενα 8.1 Κατηγορίες ισορροπημένων δένδρων αναζήτησης... 155 8.1.1 Περιστροφές... 156 8.2 Δένδρα AVL... 157 8.2.1 Αποκατάσταση συνθήκης ισορροπίας... 158

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

Δοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης

Δοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης Δοµές Δεδοµένων 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης Περίληψη Δέντρα Δυαδικής Αναζήτησης Υλοποιήσεις εισαγωγής και αναζήτησης Χαρακτηριστικά επιδόσεων ΔΔΑ Εισαγωγή στη ρίζα ΔΔΑ Υλοποιήσεις

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες

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

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση

Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Κεφάλαιο 13 Αντισταθμιστική Ανάλυση Περιεχόμενα 13.1 Αντισταθμιστική Ανάλυση... 248 13.2 Μέθοδοι Αντισταθμιστικής Ανάλυσης... 250 13.2.1 Η χρεωπιστωτική μέθοδος... 250 13.2.2 Η ενεργειακή μέθοδος... 251

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

Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Κωνσταντίνος Κώστα Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος

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

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας

Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας Κεφάλαιο 14 Προηγμένες Ουρές Προτεραιότητας Περιεχόμενα 14.1 Διωνυμικά Δένδρα... 255 14.2 Διωνυμικές Ουρές... 258 14.1.1 Εισαγωγή στοιχείου σε διωνυμική ουρά... 258 14.1.2 Διαγραφή μεγίστου από διωνυμική

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