Ταξινόμηση: Εισαγωγικά. Ταξινόμηση (Sor ng) Αλγόριθμοι Απλής Ταξινόμησης. Βασικά Βήματα των Αλγορίθμων
|
|
- Ἡρόδοτος Κοτζιάς
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Ταξινόμηση: Εισαγωγικά Ταξινόμηση (Sor ng) Ορέστης Τελέλης Βασικό πρόβλημα για την Επιστήμη των Υπολογιστών. π.χ. αλφαβητική σειρά, πωλήσεις ανά τιμή, πόλεις με βάση πληθυσμό, Μπορεί να είναι ένα πρώτο βήμα προς την αποδοτική αναζήτηση: Θυμηθείτε τη δυαδική αναζήτηση σε ταξινομημένους πίνακες. Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Σημαντική και πολύ χρονοβόρα: αντικείμενο εκτεταμένων ερευνών. Αναπτύχθηκαν πολλοί και διαφορετικοί αλγόριθμοι ταξινόμησης. Δείτε για παράδειγμα: h p://en.wikipedia.org/wiki/sor ng_algorithm Donald Knuth., Vol. 3: Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 1 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 2 / 44 Αλγόριθμοι Απλής Ταξινόμησης Βασικά Βήματα των Αλγορίθμων Σχετικά αργοί αλγόριθμοι. Αξίζει να εξεταστούν, διότι: Κατανοούμε επακριβώς τη λειτουργία τους. Κατά περιπτώσεις πιο αποδοτικοί από πιο ταχύτερους αλγόριθμους. Π.χ., η αποδοτική για μικρή ή σχεδόν ταξινομημένη είσοδο. Ενα πρόγραμμα μπορεί μόνο (?) να δε μπορεί να έχει μια καθολική εικόνα στα δεδομένα όπως ο άνθρωπος. Εκτελεί «τοπική» εξέταση των δεδομένων. Οι τρεις αλγόριθμοι που μελετάμε εκτελούν επαναλαμβανόμενα: μεταξύ δύο στοιχείων. δύο στοιχείων ενός στοιχείου μέχρι οι συγκρίσεις στοιχείων σε διαφορετικές θέσεις να είναι «σωστές». Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 3 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 4 / 44
2 1. Ταξινόμηση Φυσαλίδας (Bubble Sort) Βήματα Αλγορίθμου Ταξινόμησης Φυσαλίδας Απλή αλλά αργή επαναληπτική μέθοδος ταξινόμησης. Σε κάθε επανάληψη σαρώνει την ακολουθία των στοιχείων. Συγκρίνει κάθε στοιχείο στην ακολουθία με το επόμενο: αντιμεταθέτει τα στοιχεία αν είναι σε «λάθος» σειρά. Επαναλαμβάνει, μέχρι σε κάποια σάρωση να μη συμβεί αντιμετάθεση. Υποθέτοντας ταξινόμηση σε αύξουσα σειρά: Κάθε σάρωση εκτελείται σε ακολουθία μικρότερη κατά ένα στοιχείο. Σύγκρινε τα γειτονικά στοιχεία. Εάν το πρώτο είναι μεγαλύτερο από το δεύτερο, αντιμετάθεσέ τα. Μετακινήσου μια θέση δεξιά και επανάλαβε για όλα τα στοιχεία (ολοκλήρωση πρώτης σάρωσης). Συνέχισε μέχρι να μην υπάρχουν άλλα ζεύγη για να συγκρίνεις Ο αλγόριθμος αυτός ταξινομεί τα στοιχεία σε αύξουσα σειρά. Πώς θα τον τροποποιούσατε ώστε να ταξινομεί σε φθίνουσα σειρά? Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 5 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 6 / 44 Ταξινόμηση Φυσαλίδας (Παράδειγμα 1ης Σάρωσης) Ταξινόμηση Φυσαλίδας (Παράδειγμα Εκτέλεσης) Σύγκρινε 23, Αντιμετάθεσε 23, Σύγκρινε 23, Σύγκρινε 58, Αντιμετάθεσε 58, Σύγκρινε 58, Αντιμετάθεσε 58, 10. swapped = true j := n 1 j > 0 swapped == true: swapped := false i := 1 j 1: a i > a i+1 : tmp := a i+1 a i+1 := a i a i := tmp swapped := true j := j 1. Είσοδος: 1η Σαρ.: 2η Σαρ.: 3η Σαρ.: 4η Σαρ.: a 0 a 1 a 2 a 3 a Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 7 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 8 / 44
3 Υλοποίηση Ταξινόμησης Φυσαλίδας ArrayBub { [ ] a ; nelems ; ArrayBub ( max ) { a = [ max ] ; nelems = 0 ; i n s e r t ( v a l u e ) { a [ nelems ] = v a l u e ; nelems + + ; d i s p l a y ( ) { ( j = 0 ; j < nelems ; j ++) System. out. p r i n t ( a [ j ] + ) ; System. out. p r i n t l n ( ) ; Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 9 / 44 Υλοποίηση Ταξινόμησης Φυσαλίδας b u b b l e S o r t ( ) { swapped = ; j = nelems 1; ( j > 0 && swapped == ) { swapped = ; ( i = 0 ; i < j ; i ++) ( a [ i ] > a [ i +1] ) { swap ( i, i +1) ; swapped = ; j = j 1 ; swap ( one, two ) { temp = a [ one ] ; a [ one ] = a [ two ] ; a [ two ] = temp ; Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 10 / 44 Υλοποίηση Ταξινόμησης Φυσαλίδας Αναλλοίωτες Συνθήκες BubbleSortApp { main ( S t r i n g [ ] a r g s ) { maxsize = 100; ArrayBub a r r ; a r r = ArrayBub ( maxsize ) ; a r r. i n s e r t ( 7 7 ) ; a r r. i n s e r t ( 9 9 ) ; a r r. i n s e r t ( 4 4 ) ; a r r. i n s e r t ( 5 5 ) ; a r r. i n s e r t ( 2 2 ) ; a r r. i n s e r t ( 8 8 ) ; a r r. i n s e r t ( 1 1 ) ; a r r. i n s e r t ( 0 0 ) ; a r r. i n s e r t ( 6 6 ) ; a r r. i n s e r t ( 3 3 ) ; a r r. d i s p l a y ( ) ; a r r. b u b b l e S o r t ( ) ; a r r. d i s p l a y ( ) ; Είναι χρήσιμες για την: κατανόηση της λειτουργίας του αλγόριθμου, τυπική τεκμηρίωση της ορθότητάς του, ανάλυση της πολυπλοκότητας του αλγορίθμου, αποσφαλμάτωση (debugging) της υλοποίησης. Η αναλλοίωτη είναι ότι τα στοιχεία δεξιά του j είναι ταξινομημένα. Αυτό ισχύει καθόλη την εκτέλεση του αλγόριθμου. Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 11 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 12 / 44
4 Ανάλυση Πολυπλοκότητας Αλγορίθμου Φυσαλίδας Ανάλυση Πολυπλοκότητας Αλγόριθμου Φυσαλίδας Πλήθος Συγκρίσεων: n 1. Πλήθος Αντιμεταθέσεων: 0 έως n 1. Το στοιχείο στο τέλος του πίνακα ταξινομήθηκε: δε θα μετακινηθεί ξανά. Πλήθος Συγκρίσεων: n 2. Πλήθος Αντιμεταθέσεων: 0 έως n 2. Το στοιχείο στην προτελευταία θέση ταξινομήθηκε: δε μετακινείται ξανά. Στην 1η σάρωση n 1 συγκρίσεις, στη 2η σάρωση n 2 συγκρίσεις, Αρα: (n 1) + (n 2) = n(n 1)/2 = O(n 2 ) συγκρίσεις. Στην 1η σάρωση n 1 αντιμεταθέσεις, στη 2η σάρωση n 2, Στη χειρότερη περίπτωση n(n 1)/2 = O(n 2 ) αντιμεταθέσεις. ( ) Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 13 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 14 / Ταξινόμηση Επιλογής (Selec on Sort) H ταξινόμηση επιλογής βελτιώνει την ταξινόμηση φυσαλίδας: μειώνει το πλήθος των αντιμεταθέσεων από O(n 2 ) σε O(n). Βασική Ιδέα i 0 n 2 i: j μεταξύ των i,..., n 1. Αντιμεταθέτει τα στοιχεία των θέσεων i και j εφόσον χρειάζεται. Ο αριθμός συγκρίσεων παραμένει O(n 2 ). Σημαντική βελτίωση για «ογκώδη» αντιμετατιθέμενα αντικείμενα: σε υλοποιήσεις με πραγματικές «αντιγραφές» αντικειμένων. μπορεί να συμβαίνει σε υλοποιήσεις C/C++. στη Java πάντα αντιμεταθέτουμε αναφορές (διευθύνσεις μνήμης). Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 15 / 44 i := 0 n 2: j := i t := i + 1 n 1: - a t < a j: j := t tmp := a i a i := a j a j := tmp Είσοδος: 1η Επαν.: 2η Επαν.: 3η Επαν.: 4η Επαν.: a 0 a 1 a 2 a 3 a Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 16 / 44
5 Παράδειγμα: Ταξινόμηση Επιλογής Σύγκρινε το ελάχιστο στοιχείο (7) με το στοιχείο στη θέση 0 (23) Αντιμετάθεσε 23, Σύγκρινε το επόμενο ελάχιστο (10) με το στοιχείο στη θέση 1 (12) Αντιμετάθεσε 12, Σύγκρινε το επόμενο ελάχιστο (12) με το στοιχείο στη θέση 2 (58) Αντιμετάθεσε 58, Συγκρινε το επόμενο ελάχιστο (23) με το στοιχείο στη θέση 3 (23) Συγκρινε το επόμενο ελάχιστο (58) με το στοιχείο στη θέση 4 (58). Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 17 / 44 Υλοποίηση Ταξινόμησης Επιλογής A r r a y S e l { [ ] a ; nelems ; A r r a y S e l ( max ) { a = [ max ] ; nelems = 0 ; i n s e r t ( v a l u e ) { a [ nelems ] = v a l u e ; nelems + + ; d i s p l a y ( ) { ( j = 0 ; j < nelems ; j ++) System. out. p r i n t ( a [ j ] + ) ; System. out. p r i n t l n ( ) ; Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 18 / 44 Υλοποίηση Ταξινόμησης Επιλογής Υλοποίηση Ταξινόμησης Επιλογής s e l e c t i o n S o r t ( ) { ( i = 0 ; i < nelems 1; i + +) { j = i ; ( t = i + 1 ; t < nelems ; t ++) ( a [ t ] < a [ j ] ) j = t ; swap ( i, j ) ; swap ( one, two ) { temp = a [ one ] ; a [ one ] = a [ two ] ; a [ two ] = temp ; S e l e c t S o r t A p p { main ( S t r i n g [ ] a r g s ) { maxsize = 100; A r r a y S e l a r r ; a r r = A r r a y S e l ( maxsize ) ; a r r. i n s e r t ( 7 7 ) ; a r r. i n s e r t ( 9 9 ) ; a r r. i n s e r t ( 4 4 ) ; a r r. i n s e r t ( 5 5 ) ; a r r. i n s e r t ( 2 2 ) ; a r r. i n s e r t ( 8 8 ) ; a r r. i n s e r t ( 1 1 ) ; a r r. i n s e r t ( 0 0 ) ; a r r. i n s e r t ( 6 6 ) ; a r r. i n s e r t ( 3 3 ) ; a r r. d i s p l a y ( ) ; a r r. s e l e c t i o n S o r t ( ) ; a r r. d i s p l a y ( ) ; Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 19 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 20 / 44
6 Ανασκόπηση Αλγόριθμου Επιλογής 3. Ταξινόμηση Παρεμβολής (Inser on Sort) i O(n 2 ) (καθορίζεται από το πλήθος των συγκρίσεων). Πολύ λιγότερες - O(n) - αντιμεταθέσεις, από τον αλγόριθμο φυσαλίδας. Για μικρό n, η ταξινόμηση επιλογής μπορεί να είναι σημαντικά ταχύτερη. Ειδικά εάν ο χρόνος που απαιτείται για μια αντιμετάθεση είναι πολύ μεγαλύτερος από το χρόνο μιας σύγκρισης. Επισκέπτεται κάθε θέση i = 0,..., n 1 της ακολουθίας εισόδου. i Διατρέχει «όπισθεν» την ακολουθία, a j a i, για j < i. Μετακινεί τα στοιχεία αυτά μία θέση «προς τα εμπρός». Εισάγει (παρεμβάλλει) το στοιχείο a i στην κενή θέση που δημιουργείται. Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 21 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 22 / 44 Ταξινόμηση Παρεμβολής Παράδειγμα: Ταξινόμηση Παρεμβολής Επεξεργασία του 12. i := 1 n 1: tmp := a[i] j := i j > 0 a j 1 tmp: a j := a j 1 j = j 1 a j := tmp Είσοδος: 1η Επαν.: 2η Επαν.: 3η Επαν.: 4η Επαν.: a 0 a 1 a 2 a 3 a Μετακινούμε το 23 για να κάνουμε χώρο για το Εισάγουμε το 12 στη θέση Επεξεργασία του Μετακινούμε τα 12, 23, 58 για να κάνουμε χώρο για το Εισάγουμε το 7 στη θέση Επεξεργασία του Mετακινούμε τα 12, 23, 58, για να κάνουμε χώρο για το 10. Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 23 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 24 / 44
7 Υλοποίηση Ταξινόμησης Παρεμβολής Υλοποίηση Ταξινόμησης Παρεμβολής A r r a y I n s { [ ] a ; nelems ; A r r a y I n s ( max ) { a = [ max ] ; nelems = 0 ; i n s e r t ( v a l u e ) { a [ nelems ] = v a l u e ; nelems + + ; d i s p l a y ( ) { ( j = 0 ; j < nelems ; j ++) System. out. p r i n t ( a [ j ] + ) ; System. out. p r i n t l n ( ) ; i n s e r t i o n S o r t ( ) { ( i = 1 ; i < nelems ; i + +) { temp = a [ i ] ; j = i ; ( j >0 && a [ j 1] >= temp ) { a [ j ] = a [ j 1]; j ; a [ j ] = temp ; Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 25 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 26 / 44 Υλοποίηση Ταξινόμησης Παρεμβολής I n s e r t S o r t A p p { main ( S t r i n g [ ] a r g s ) { maxsize = 100; A r r a y I n s a r r ; a r r = A r r a y I n s ( maxsize ) ; a r r. i n s e r t ( 7 7 ) ; a r r. i n s e r t ( 9 9 ) ; a r r. i n s e r t ( 4 4 ) ; a r r. i n s e r t ( 5 5 ) ; a r r. i n s e r t ( 2 2 ) ; a r r. i n s e r t ( 8 8 ) ; a r r. i n s e r t ( 1 1 ) ; a r r. i n s e r t ( 0 0 ) ; a r r. i n s e r t ( 6 6 ) ; a r r. i n s e r t ( 3 3 ) ; a r r. d i s p l a y ( ) ; a r r. i n s e r t i o n S o r t ( ) ; a r r. d i s p l a y ( ) ; Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 27 / 44 Ανασκόπηση Ταξινόμησης Παρεμβολής Στο τέλος κάθε επανάληψης, τα στοιχεία με μικρότερους δείκτες από i είναι ταξινομημένα μεταξύ τους. n 1 επαναλήψεις (διότι το i είναι από 1 έως n 1). Στην i-οστή επαν.: ολίσθηση κατά 1 θέση το πολύ i 1 στοιχείων. Περίπου ίδιο πλήθος συγκρίσεων και αντιγραφών (ολισθήσεων). Αρα, συνολικό πλήθος βημάτων: n 1 (i 1) = (n 2) = O(n 2 ) i=1 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 28 / 44
8 Ταξινόμηση Αντικειμένων Ταξινομούνται και σύνθετα αντικείμενα, όχι μόνο οι βασικοί τύποι. Ταξινόμηση αντικειμένων τύπου Person. Χρήση ταξινόμησης παρεμβολής (inser on sort). Αλφαβητική ταξινόμηση βάσει του επωνύμου (πεδίο lastname). Παράδειγμα Ταξινόμησης Αντικειμένων Person { S t r i n g lastname ; S t r i n g f i r s t N a m e ; age ; Person ( S t r i n g l a s t, S t r i n g f i r s t, a ) { lastname = l a s t ; f i r s t N a m e = f i r s t ; age = a ; d i s p l a y P e r s o n ( ) { System. out. p r i n t ( L a s t name : + lastname ) ; System. out. p r i n t (, F i r s t name : + f i r s t N a m e ) ; System. out. p r i n t l n (, Age : + age ) ; S t r i n g g e t L a s t ( ) { lastname ; Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 29 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 30 / 44 Παράδειγμα Ταξινόμησης Αντικειμένων Παράδειγμα Ταξινόμησης Αντικειμένων ArrayInOb { Person [ ] a ; nelems ; ArrayInOb ( max ) { a = Person [ max ] ; nelems = 0 ; i n s e r t ( S t r i n g l a s t, S t r i n g f i r s t, age ) { a [ nelems ] = Person ( l a s t, f i r s t, age ) ; nelems + + ; d i s p l a y ( ) { ( j = 0 ; j < nelems ; j ++) a [ j ]. d i s p l a y P e r s o n ( ) ; i n s e r t i o n S o r t ( ) { ( i = 1 ; i < nelems ; i ++) { Person temp = a [ i ] ; j = i ; ( j >0 && a [ j 1]. g e t L a s t ( ). compareto ( temp. g e t L a s t ( ) ) >0) { a [ j ] = a [ j 1]; j ; a [ j ] = temp ; Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 31 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 32 / 44
9 O b j e c t S o r t A p p { main ( S t r i n g [ ] a r g s ) { maxsize = 100; ArrayInOb a r r ; a r r = ArrayInOb ( maxsize ) ; a r r. i n s e r t ( Evans, P a t t y, 24) ; a r r. i n s e r t ( Smith, Doc, 59) ; a r r. i n s e r t ( Smith, L o r r a i n e, 37) ; a r r. i n s e r t ( Smith, P a u l, 37) ; a r r. i n s e r t ( Yee, Tom, 43) ; a r r. i n s e r t ( Hashimoto, Sato, 21) ; a r r. i n s e r t ( Stimson, Henry, 29) ; a r r. i n s e r t ( V e l a s q u e z, J o s e, 72) ; System. out. p r i n t l n ( Before s o r t i n g : ) ; a r r. d i s p l a y ( ) ; a r r. i n s e r t i o n S o r t ( ) ; System. out. p r i n t l n ( A f t e r s o r t i n g : ) ; a r r. d i s p l a y ( ) ; Σύγκριση Αλγορίθμων Απλής Ταξινόμησης Η ταξινόμηση φυσαλίδας είναι απλή αλλά είναι χρήσιμη μόνο αν η ποσότητα των προς επεξεργασία δεδομένων είναι μικρή. Η ταξινόμηση επιλογής ελαχιστοποιεί τον αριθμό των αντιμεταθέσεων αλλά ο αριθμός των συγκρίσεων παραμένει υψηλός. Μπορεί να είναι χρήσιμη όταν η ποσότητα των δεδομένων είναι μικρή και η αντιμετάθεση των στοιχείων είναι πολύ χρονοβόρα σε σχέση με τη σύγκρισή τους. Η ταξινόμηση παρεμβολής είναι πιο ευέλικτη και η καλύτερη επιλογή στις περισσότερες περιπτώσεις, αν υποθέσουμε ότι η ποσότητα των δεδομένων είναι μικρή ή τα δεδομένα είναι σχεδόν ταξινομημένα. Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 33 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 34 / 44 Ταξινόμηση Συγχώνευσης Παράδειγμα Συγχώνευσης, Δίνονται δύο ταξινομημένοι πίνακες και. Ζητείται αλγόριθμος που δημιουργεί έναν ταξινομημένο πίνακα, που περιέχει τα στοιχεία των και. 1 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 35 / 44
10 Παράδειγμα Συγχώνευσης Παράδειγμα Συγχώνευσης Παράδειγμα Συγχώνευσης Παράδειγμα Συγχώνευσης
11 Παράδειγμα Συγχώνευσης Παράδειγμα Συγχώνευσης Παράδειγμα Συγχώνευσης Παράδειγμα Συγχώνευσης
12 Παράδειγμα Συγχώνευσης Αλγόριθμος Συγχώνευσης (Merge) A[ i ] = και B[ j ] =, για i A.length και j B.length αντίστοιχα Επιστρέφει πίνακα C, με τα στοιχεία των A,B σε αύξουσα σειρά C νέος πίνακας μήκους A.length + B.length; i = 0; j = 0; k = 0,..., (A.length+B.length) 1 { A[ i ] < B[ j ] C[ k ] = A[ i ]; i = i + 1; { C[ k ] = B[ j ]; j = j + 1; C; O(n), για πίνακες A, B το πολύ n στοιχείων. Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 37 / 44 Ταξινόμηση Συγχώνευσης (Παράδειγμα) Ταξινόμηση Συγχώνευσης (Παράδειγμα) Μετά το 1ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 1): Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 38 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 38 / 44
13 Ταξινόμηση Συγχώνευσης (Παράδειγμα) Ταξινόμηση Συγχώνευσης (Παράδειγμα) Μετά το 1ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 1): Μετά το 1ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 1): Μετά το 2ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 2): Μετά το 2ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 2): Μετά το 3ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 4): Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 38 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 38 / 44 Ταξινόμηση Συγχώνευσης (Παράδειγμα) Ταξινόμηση Συγχώνευσης Μετά το 1ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 1): Μετά το 2ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 2): Μετά το 3ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 4): Μπορώ να δημιουργήσω n 2 ταξινομημένα ζεύγη στοιχείων του πίνακα. Δηλαδή να ταξινομήσω κάθε ζεύγος, ανεξάρτητα από τα υπόλοιπα: { { { { A[ 0 ], A[ 1 ], A[ 2 ], A[ 3 ], A[ 4 ], A[ 5 ],..., A[ n 2 ], A[ n 1 ] = n 2 Οι πίνακες ενός στοιχείου εντός κάθε ζεύγους είναι ταξινομημένοι! Μετά το 4ο Βήμα (συγχωνεύσεις υποπινάκων μήκους 8): Πόσο χρόνο χρειάζομαι για να συγχωνεύσω όλα τα ζευγάρια? O(n) Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 38 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 39 / 44
14 Ταξινόμηση Συγχώνευσης Ταξινόμηση Συγχώνευσης Από το 1ο βήμα, έχω n 4 ζευγάρια υπο-πινάκων: κάθε πίνακας σε κάθε ζευγάρι έχει ακριβώς 2 στοιχεία στη σωστή σειρά, είναι ταξινομημένος: { [ ] [ ] { [ ] [ ] A 0 1, A 2 3, A 4 5, A 6 7,..., { [ ] [ ]..., A (n 4) (n 3), A (n 2) (n 1) Συγχωνεύσω 2 γειτονικά ζεύγη υπο-πινάκων (2 στοιχείων έκαστος) = Από το 2ο βήμα, έχω n 8 ζευγάρια υπο-πινάκων: κάθε πίνακας σε κάθε ζευγάρι έχει ακριβώς 4 στοιχεία στη σωστή σειρά, είναι ταξινομημένος: { [ ] [ ] { [ ] [ ] A 0 3, A 4 7, A 8 11, A 12 15,..., { [ ] [ ]..., A (n 6) (n 3), A (n 4) (n 1) Συγχωνεύω 2 γειτονικά ζεύγη υπο-πινάκων (4 στοιχείων έκαστος) = Πόσο χρόνο χρειάζομαι για να συγχωνεύσω όλα τα n 4 ζεύγη? O(n) Πόσο χρόνο χρειάζομαι για να συγχωνεύσω όλα τα n 8 ζεύγη? O(n) Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 40 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 41 / 44 Πολυπλοκότητα Ταξινόμησης Συγχώνευσης Ταξινόμηση Συγχώνευσης: Λεπτομέρειες Υλοποίησης Κάθε βήμα (συγχωνεύσεις γειτονικών υποπινάκων) σε O(n) χρόνο. Χρειάζεται εκτίμηση του πλήθους των βημάτων. Στο τέλος κάθε βήματος έχει: ζευγών προς συγχώνευση. έχει των ταξινομημένων υπο-πινάκων. Αν ο αλγόριθμος κάνει k βήματα συγχωνεύσεων, στο k-στό βήμα: Μήκος ταξινομημένου υποπίνακα: 2 k = n. Επομένως, k = log n. Αρα η πολυπλοκότητα του αλγορίθμου είναι O(n log n). Είσοδος της είναι ο πίνακας A και το τρέχον μήκος υποπινάκων. Συγχωνεύονται ζεύγη γειτονικών υποπινάκων του τρέχοντος μήκους: μέσα σε έναν νέο, προσωρινό πίνακα, αντιγράφουμε το αποτέλεσμα πίσω στον A, στις θέσεις που καταλάμβαναν οι υποπίνακες κάθε ζεύγους. Ειδική περίπτωση: αν το πλήθος των στοιχείων δεν είναι δύναμη του 2. Ο 2ος υποπίνακας του τελευταίου ζευγαριού έχει ένα στοιχείο λιγότερο ή περισσότερο. Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 42 / 44 Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 43 / 44
15 Πολυπλοκότητα Ταξινόμησης Συγχώνευσης Ο. Τελέλης Πανεπιστήμιο Πειραιώς Δομές Δεδομένων 44 / 44
5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 5. Απλή Ταξινόμηση 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 11/11/2016 Εισαγωγή Η
Σύνοψη Προηγούμενου. Πίνακες (Arrays) Πίνακες (Arrays): Βασικές Λειτουργίες. Πίνακες (Arrays) Ορέστης Τελέλης
Σύνοψη Προηγούμενου Πίνακες (Arrays Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Διαδικαστικά θέματα. Aντικείμενο Μαθήματος. Aντικείμενα, Κλάσεις, Μέθοδοι, Μεταβλητές.
Ταξινόμηση. Σαλτογιάννη Αθανασία
Ταξινόμηση Σαλτογιάννη Αθανασία Ταξινόμηση Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ταξινόμηση Τι εννοούμε όταν λέμε ταξινόμηση; Ποια είδη αλγορίθμων ταξινόμησης υπάρχουν; Ταξινόμηση Τι εννοούμε όταν
Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης
Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με
Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 7 η. Βασίλης Στεφανής
Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 7 η Βασίλης Στεφανής Αλγόριθμοι ταξινόμησης Στην προηγούμενη διάλεξη είδαμε: Binary search Λειτουργεί μόνο σε ταξινομημένους πίνακες Πώς τους ταξινομούμε? Πολλοί τρόποι. Ενδεικτικά:
Στοιχεία Αλγορίθµων και Πολυπλοκότητας
Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις
Πληροφορική 2. Αλγόριθμοι
Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται
Αλγόριθμοι Ταξινόμησης Μέρος 1
Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις
Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Α. SelectionSort Ταξινόμηση με Επιλογή Β. InsertionSort Ταξινόμηση με Εισαγωγή
Τι είναι αλγόριθμος; Υποπρογράμματα (υποαλγόριθμοι) Βασικές αλγοριθμικές δομές
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Αλγόριθμοι και Δομές Δεδομένων (Ι) (εισαγωγικές έννοιες) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016
Δομές Δεδομένων & Αλγόριθμοι
Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση
Ταξινόμηση. Ταξινόμηση ευθείας ανταλλαγής (Φυσαλίδα) 1) Να ταξινομηθεί ο πίνακας Α[Ν] σε αύξουσα σειρά με τη μέθοδο της φυσαλίδας.
Ταξινόμηση Ταξινόμηση ευθείας ανταλλαγής (Φυσαλίδα) 1) Να ταξινομηθεί ο πίνακας Α[Ν] σε αύξουσα σειρά με τη μέθοδο της φυσαλίδας. Για j από N µέχρι i µε_βήµα -1 Αν (Α[j] < Α[j-1]) τότε tmp
Δομές Δεδομένων & Αλγόριθμοι
Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I
Διάλεξη 09: Αλγόριθμοι Ταξινόμησης I Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης: Α. SelectoSort Ταξινόμηση με Επιλογή Β. IsertoSort Ταξινόμηση με Εισαγωγή Γ. MergeSort
Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης
Δοµές Δεδοµένων 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι Ε. Μαρκάκης Περίληψη Bubble Sort Selection Sort Insertion Sort Χαρακτηριστικά επιδόσεων Shellsort Ταξινόµηση συνδεδεµένων λιστών Δοµές Δεδοµένων
Θέματα Προγραμματισμού Η/Υ
Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή
3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ 3.1 ΑΝΑ ΡΟΜΗ 3.1.1 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα
Πληροφορική ΙΙ Ενότητα 1
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός
Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort. Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012
Αλγόριθμοι Ταξινόμησης Bubble Sort Quick Sort Αντρέας Δημοσθένους Καθηγητής Πληροφορικής Ολυμπιάδα 2012 3 5 1 Ταξινόμηση - Sorting Πίνακας Α 1 3 5 5 3 1 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση
Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Πίνακες (Μια παλιά άσκηση) Εισαγωγή. A n
Πίνακες (Μια παλιά άσκηση) Πίνακες Κατακερματισμού (Hash Tables) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς A n O(1) (στην πρώτη ελέυθερη θέση στο τέλος του πίνακα).
Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου, Τμήμα Μηχανικών Πληροφορικής ΤΕ Χειμερινό Εξάμηνο 2014-2015 (Παρουσίαση 5) 1 / 17 Απόδοση προγραμμάτων Συχνά χρειάζεται να εκτιμηθεί η απόδοση
Αλγόριθμοι Ταξινόμησης Μέρος 2
Αλγόριθμοι Ταξινόμησης Μέρος 2 Μανόλης Κουμπαράκης 1 Προχωρημένοι Αλγόριθμοι Ταξινόμησης Στη συνέχεια θα παρουσιάσουμε τρείς προχωρημένους αλγόριθμους ταξινόμησης: treesort, quicksort και mergesort. 2
Σχεδίαση και Ανάλυση Αλγορίθμων
Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα.0 Σταύρος Δ. Νικολόπουλος 06-7 Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Ιωαννίνων Webpage: www.cs.uoi.gr/~stavros Ταξινόμηση Selection-Sort Bubble-Sort και
Quicksort. Πρόβλημα Ταξινόμησης. Μέθοδοι Ταξινόμησης. Συγκριτικοί Αλγόριθμοι
Πρόβλημα Ταξινόμησης Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Είσοδος : ακολουθία n αριθμών (α 1, α 2,..., α n
Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Καθηγητής: Περικλής
Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο
Πίνακες Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος 2012-13 A Εξάμηνο Πίνακες Η ποιο γνωστή και διαδεδομένη στατική δομή είναι ο πίνακας. Οι πίνακες αποτελούνται από στοιχεία
Ταξινόμηση. Ταξινόμηση ευθείας ανταλλαγής (Φυσαλίδα) 1) Να ταξινομηθεί ο πίνακας Α[Ν] σε αύξουσα σειρά με τη μέθοδο της φυσαλίδας.
ευθείας ανταλλαγής (Φυσαλίδα) 1) Να ταξινομηθεί ο πίνακας Α[Ν] σε αύξουσα σειρά με τη μέθοδο της φυσαλίδας. Για i από 2 µέχρι Ν Για j από N µέχρι i µε_βήµα -1 Αν (Α[j] < Α[j-1]) τότε tmp
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ ΤΟ ΠΡΟΒΛΗΜΑ ΤΗΣ ΤΑΞΙΝΟΜΗΣΗΣ Ορισμός ταξινόμησης 2 Κατηγορίες αλγορίθμων ταξινόμησης
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων
Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις
Προγραµµατιστικές Τεχνικές
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Προγραµµατιστικές Τεχνικές Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωµύλος Κορακίτης
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Φροντιστήριο 2 ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήριο 2 ΜΕΡΟΣ Α ΤΑΞΙΝΟΜΗΣΗ ΣΤΗ ΔΕΥΤΕΡΕΥΟΥΣΑ ΜΝΗΜΗ ΕΙΣΑΓΩΓΗ Όταν η χωρητικότητα της κύριας μνήμης δεν είναι ικανή να χωρέσει όλα τα δεδομένα που πρόκειται να ταξινομηθούν αναγκαζόμαστε
Ταξινόμηση. Παύλος Εφραιμίδης. Δομές Δεδομένων Ταξινόμηση 1
Ταξινόμηση Παύλος Εφραιμίδης Δομές Δεδομένων Ταξινόμηση 1 Το πρόβλημα της ταξινόμησης Δομές Δεδομένων Ταξινόμηση 2 Ταξινόμηση Δίνεται πολυ-σύνολο Σ με στοιχεία από κάποιο σύμπαν U (πχ. U = το σύνολο των
1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0.
ΦΥΛΛΑΔΙΟ ΚΑΤΑΝΟΗΣΗΣ 6 ΛΥΣΕΙΣ 1. Η χειρότερη περίπτωση είναι όταν γίνου 10 επαναλήψεις, δηλαδή για n = 0. 2. Εντολή Αλγορίθμου Αριθμός Πράξεων Ανάθεση τιμών στα x,y 2 έλεγχος i 6 αύξηση i 5 εκτύπωση i 5
Προγραμματιστικές Τεχνικές
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Προγραμματιστικές Τεχνικές Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Ρωμύλος Κορακίτης
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή
Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 3 1. Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή 2. Δυναμικές είναι οι δομές που αποθηκεύονται σε συνεχόμενες θέσεις μνήμης 3. Ένας πίνακας
Έστω ένας πίνακας με όνομα Α δέκα θέσεων : 1 η 2 η 3 η 4 η 5 η 6 η 7 η 8 η 9 η 10 η
Μονοδιάστατοι Πίνακες Τι είναι ο πίνακας γενικά : Πίνακας είναι μια Στατική Δομή Δεδομένων. Δηλαδή συνεχόμενες θέσεις μνήμης, όπου το πλήθος των θέσεων είναι συγκεκριμένο. Στις θέσεις αυτές καταχωρούμε
ΠΛΗ111. Ανοιξη Μάθηµα 9 ο. Ταξινόµηση. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 9 ο Ταξινόµηση Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ταξινόµηση Εισαγωγή Selection sort Insertion sort Bubble sort
Αλγόριθμοι Ταξινόμησης Μέρος 4
Αλγόριθμοι Ταξινόμησης Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές 1 Μέθοδοι Ταξινόμησης Βασισμένοι σε Συγκρίσεις Κλειδιών Οι αλγόριθμοι ταξινόμησης που είδαμε μέχρι τώρα αποφασίζουν πώς να
Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch
Bubble Hack Οπτικοποίηση του αλγορίθμου ταξινόμησης Bubble Sort στο Scratch 1 Καλαμποκάς Ιάσων, 2 Καραστάθη Μαρία, 3 Καραστάθη Ουρανία, 4 Χαλβατσιώτης Γεώργιος, 5 Κωνσταντίνου Ζωή, 6 Καρόγλου Νικόλαος,
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο. Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 8 Ο Ταξινόμηση και Αναζήτηση Συναρτήσεις χειρισμού οθόνης ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Εισαγωγή Η τακτοποίηση των δεδομένων με ιδιαίτερη σειρά είναι πολύ σημαντική λειτουργία που ονομάζεται
Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 2 : Αλγόριθμοι. Δρ. Γκόγκος Χρήστος
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 2 : Αλγόριθμοι Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής & Ελεγκτικής
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.
Διάλεξη 13: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης SelectionSort, InsertionSort, Στις ερχόμενες διαλέξεις θα δούμε τους αλγόριθμους Mergesort,
Εργαστηριακή Άσκηση 1
Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε
Προγραμματισμός Η/Υ (ΤΛ2007 )
Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ00 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 01-15
int Α[] = {4, 16, 22, 12, 9, 15, 10}; { 4, 9, 10, 12, 15, 16, 22 } Α[0]=4, Α[1]=9, Α[2]=10 { 4, 16,22, 12, 9, 15, 10} { 4, 12, 16, 22, 9, 15,16, 22 }
ΤΑΞΙΝΟΜΗΣΗ- ΑΣΚΗΣΕΙΣ Οι μέθοδοι ταξινόμησης INSERTION, SELECTION και BUBBLE SORT με την ολοκλήρωσή τους θα έχουν σε κάθε θέση του πίνακα το σωστό στοιχείο x (ταξινόμηση με αύξουσα σειρά δηλ. στην θέση
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ:
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΟΝΟΜΑΤΕΠΩΝΥΜΟ: Θέμα 1ο I. Ποιες οι διαφορές μεταξύ των στατικών και των δυναμικών δομών; (Μονάδες 7) II. Να γράψετε στο τετράδιό
Ενδεικτικές Ερωτήσεις Θεωρίας
Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση
ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αναζήτηση και ταξινόµηση 7 Αναζήτηση (search) Πρόβληµα: αναζήτηση της καταχώρησης key στη
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ. Πίνακες και βασικές επεξεργασίες αυτών
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ & ΑΛΓΟΡΙΘΜΟΙ Πίνακες και βασικές επεξεργασίες αυτών Σκοπιές από τις οποίες μελετά η πληροφορική τα δεδομένα Γλωσσών προγραμματισμού Υλικού Δομών δεδομένων Ανάλυσης δεδομένων 22/11/08 Παρουσιάσεις
Αλγόριθμοι ταξινόμησης
Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης BuubleSort, SelectionSort, InsertionSort, Merger Sort, Quick Soft ΕΠΛ Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ταξινόμηση. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Ταξινόμηση Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Είσοδος n αντικείμενα a 1, a 2,..., a n με κλειδιά (συνήθως σε ένα πίνακα, ή λίστα, κ.τ.λ)
ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Θέμα 1 ο ΘΕΜΑΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΕΞΕΤΑΣΕΩΝ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Α) Να χαρακτηρίσετε τις παρακάτω προτάσεις ως
1η Σειρά Γραπτών Ασκήσεων
1/20 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 1η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 1 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 2 3 4 5 2/20
Κεφάλαιο 5. Ανάλυση αλγορίθμων
Κεφάλαιο 5 Ανάλυση αλγορίθμων 5.1 Γενικός διδακτικός σκοπός Ο γενικός σκοπός του κεφαλαίου είναι να κατανοήσουν οι μαθητές τις τεχνικές ανάλυσης των αλγορίθμων και να εξοικειωθούν με την έννοια της πολυπλοκότητας
Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2
Διαίρει-και-Βασίλευε Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2 Διαίρει-και-Βασίλευε Γενική µέθοδος σχεδιασµού αλγορίθµων: Διαίρεση σε ( 2) υποπροβλήµατα (σηµαντικά) µικρότερου µεγέθους.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2014-2015 Πάτρα 5/5/2015 Ονοματεπώνυμο:.. Θέμα Α Α1. α. Να γράψετε στο τετράδιό σας τον
Σχεδίαση Αλγορίθμων -Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο
Πολλαπλασιασμός μεγάλων ακεραίων (1) Για να πολλαπλασιάσουμε δύο ακεραίους με n 1 και n 2 ψηφία με το χέρι, θα εκτελέσουμε n 1 n 2 πράξεις πολλαπλασιασμού Πρόβλημα ρβημ όταν έχουμε πολλά ψηφία: A = 12345678901357986429
ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ)
ΑΡΧΗ 1ης ΣΕΛΙΔΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΤΑΞΗ / ΤΜΗΜΑ : Γ ΛΥΚΕΙΟΥ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΜΑΡΤΙΟΣ 2018 ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 6 (ΕΞΙ) ΘΕΜΑ Α : A1. Να γράψετε στο φύλλο απαντήσεων τον αριθμό καθεμιάς
Προχωρημένες έννοιες προγραμματισμού σε C
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ
Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2016-2017 Πάτρα 3/5/2017 Ονοματεπώνυμο:.. Α1. Να γράψετε στην κόλλα σας τον αριθμό
Δομές δεδομένων (2) Αλγόριθμοι
Δομές δεδομένων (2) Αλγόριθμοι Παράγωγοι τύποι (struct) σύνοψη προηγουμένων Πίνακες: πολλές μεταβλητές ίδιου τύπου Παράγωγοι τύποι ή Δομές (struct): ομαδοποίηση μεταβλητών διαφορετικού τύπου struct Student
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ
Θέμα Α ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΠΑΝΕΛΛΑΔΙΚΩΝ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ 2014-2015 Πάτρα 5/5/2015 Ονοματεπώνυμο:.. Α1. α. Να γράψετε στο τετράδιό σας τον
ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 8 Προχωρηµένα Θέµατα Προγραµµατισµού C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 8 Προχωρηµένα
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων
ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα
Επιµέλεια Θοδωρής Πιερράτος
εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,
5.1. Προσδοκώμενα αποτελέσματα
5.1. Προσδοκώμενα αποτελέσματα Όταν θα έχεις ολοκληρώσει τη μελέτη αυτού του κεφαλαίου θα έχεις κατανοήσει τις τεχνικές ανάλυσης των αλγορίθμων, θα μπορείς να μετράς την επίδοση των αλγορίθμων με βάση
Δομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ100) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης
Σύνοψη Προηγούμενου Λίστες (Lists) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Στοίβες (Stacks) : στην κορυφή της στοίβας ( ) από την κορυφή της στοίβας ( ) Ουρές
Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:
Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C
1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;
1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι
Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη
Ταξινόμηση. Ταξινόμηση με Εισαγωγή. Ταξινόμηση με Επιλογή Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση Η ταξινόμηση sortg τοποθετεί ένα σύνολο κόμβων ή εγγραφών σε μία συγκεκριμένη διάταξη
6. Αφού δημιουργήσετε ένα πίνακα 50 θέσεων με ονόματα μαθητών να τον ταξινομήσετε αλφαβητικά με την μέθοδο της φυσαλίδας
Ανάπτυξη εφαρμογών Γ' Λυκείου Τεχνολογικής κατεύθυνσης ΑΣΚΗΣΕΙΣ ΜΕ ΜΟΝΟΔΙΑΣΤΑΤΟΥΣ ΠΙΝΑΚΕΣ ΒΑΣΙΚΕΣ 1. Να γράψετε πρόγραμμα το οποίο:3. Να γράψετε αλγόριθμο ή πρόγραμμα το οποίο: α. Θα δημιουργεί ένα πίνακα
ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Γιάννης Κουτσονίκος Επίκουρος Καθηγητής Οργάνωση Δεδομένων Δομή Δεδομένων: τεχνική οργάνωσης των δεδομένων με σκοπό την
δυαδική αναζήτηση Παύλος Σ. Εφραιμίδης
δυαδική αναζήτηση Παύλος Σ. Εφραιμίδης περιεχόμενα δυαδική αναζήτηση ασύμμετρη δυαδική αναζήτηση δυαδική αναζήτηση με σφάλματα 2 Το πρόβλημα της αναζήτησης 3 Αναζήτηση Το πρόβλημα της αναζήτησης: Δίνεται
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 10: Ταξινόμηση Πίνακα Αναζήτηση σε Ταξινομημένο Πίνακα Πρόβλημα Δίνεται πίνακας t από Ν ακεραίους. Ζητούμενο: να ταξινομηθούν τα περιεχόμενα του πίνακα σε αύξουσα αριθμητική
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 14: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης 3) Mergesort Ταξινόμηση με Συγχώνευση 4) BucketSort Ταξινόμηση με Κάδους Διδάσκων:
εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και
Παύλος Εφραιμίδης 1 περιεχόμενα ενθετική ταξινόμηση ανάλυση αλγορίθμων σχεδίαση αλγορίθμων 2 ενθετική ταξινόμηση 3 ενθετική ταξινόμηση Βασική αρχή: Επιλέγει ένα-έναταστοιχείατηςμηταξινομημένης ακολουθίας
Ταξινόµηση. Παύλος Εφραιµίδης. οµές εδοµένων και
Παύλος Εφραιµίδης 1 Το πρόβληµα της ταξινόµησης 2 3 ίνεται πολυ-σύνολο Σ µε στοιχεία από κάποιο σύµπαν U (πχ. U = το σύνολο των ακεραίων αριθµών). του Σ είναι η επιβολή µιας διάταξης στα στοιχεία του συνόλου
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 6β: Ταξινόμηση με εισαγωγή και επιλογή Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creatve
Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη
Όρια Αλγόριθμων Ταξινόμησης Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Όρια Αλγόριθμων Ταξινόμησης Μέχρι στιγμής εξετάσθηκαν μέθοδοι ταξινόμησης µε πολυπλοκότητα της τάξης Θ ) ή Θlog ). Τι εκφράζει
Επιλογή. ημήτρης Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο
Επιλογή ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Πρόβλημα Επιλογής Πίνακας Α[]με n στοιχεία (όχι ταξινομημένος). Αριθμός k, 1 k n. Υπολογισμός
Ταξινόμηση. 1. Ταξινόμηση του Shell. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη
Ταξινόμηση. Ταξινόμηση του Shell Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση του Shell Η μέθοδος που προτάθηκε από τον Shell έχει βασικό χαρακτηριστικό ότι χρησιμοποιεί µία ακολουθία ακεραίων
Πρόβληµα Επιλογής. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1
Πρόβληµα Επιλογής Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Επιλογή 1 Πρόβληµα Επιλογής Πίνακας Α[ Αριθµός k, 1 k n. ] µε n στοιχεία (όχι ταξινοµηµένος). Υπολογισµός του k-οστού µικρότερου στοιχείου (στοιχείο
Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:
Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω: 1ο ΓΕΛ Καστοριάς Βασικές Έννοιες Αλγορίθμων Δομή Ακολουθίας (κεφ. 2 και 7 σχολικού βιβλίου) 1. Οι μεταβλητές αντιστοιχίζονται από τον μεταγλωττιστή κάθε
Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ
Εντολές επανάληψης Κεφάλαια 02-08 οµές Επανάληψης Επιτρέπουν την εκτέλεση εντολών περισσότερες από µία φορά Οι επαναλήψεις ελέγχονται πάντοτε από κάποια συνθήκη η οποία καθορίζει την έξοδο από το βρόχο
ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1 ΣΩΣΤΟ 2 ΛΑΘΟΣ 3 ΛΑΘΟΣ 4 ΛΑΘΟΣ 5 ΣΩΣΤΟ
ΕΝΔΕΙΚΤΙΚΕΣ ΑΠΑΝΤΗΣΕΙΣ ΘΕΜΑ Α Α1. 1 ΣΩΣΤΟ 2 ΛΑΘΟΣ 3 ΛΑΘΟΣ 4 ΛΑΘΟΣ 5 ΣΩΣΤΟ Α2. α. Δομή Δεδομένων είναι ένα σύνολο αποθηκευμένων δεδομένων που υφίστανται επεξεργασία από ένα σύνολο λειτουργιών. Προσπέλαση,
Επαναληπτικό Διαγώνισμα
Επαναληπτικό Διαγώνισμα Ανάπτυξη Εφαρμογών Σε Προγραμματιστικό Περιβάλλον Γ Λυκείου Κυριακή 13 Απριλίου 2014 ΘΕΜΑ Α Δίνεται το παρακάτω τμήμα προγράμματος που το ακολουθεί μία συνάρτηση που χρησιμοποιεί....
φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής
Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής Θέμα Α Α1. Να γράψετε στο τετράδιο σας το γράμμα της κάθε πρότασης και δίπλα τη λέξη
Διάλεξη 04: Παραδείγματα Ανάλυσης
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα
Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων
Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα
Επιλογή. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
Επιλογή ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Αλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα
Επιλογή. Επιμέλεια διαφανειών: Δ. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Εθνικό Μετσόβιο Πολυτεχνείο
Επιλογή Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Πρόβλημα Επιλογής Πίνακας Α[ ] με n στοιχεία (όχι ταξινομημένος). Αριθμός k,
ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο ιαίρει-και-βασίλευε Γενική μέθοδος σχεδιασμού αλγορίθμων: ιαίρεση σε ( 2) υποπροβλήματα