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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcript

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

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

3 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Μαρία Σατρατζέμη 3

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

5 Γρήγορη Ταξινόμηση Η γρήγορη ταξινόμηση qucksort), που αλλιώς ονομάζεται και ταξινόμηση µε διαμερισμό και ανταλλαγή partto exchage sort), θεωρείται ένας από τους top-0 αλγορίθμους ως προς την πρακτική χρηστότητα και το ενδιαφέρον που προκάλεσαν από τη θεωρητική σκοπιά. Η γρήγορη ταξινόμηση αποτελεί ένα κλασικό παράδειγμα αλγορίθμου της οικογενείας Διαίρει και Βασίλευε. Όπως δηλώνει το πρώτο όνομα του αλγορίθμου, πρόκειται για µία πολύ αποτελεσματική μέθοδο ταξινόμησης πλην ελαχίστων εξαιρέσεων). Όπως δηλώνει το δεύτερο όνοµά του, τα βασικά χαρακτηριστικά του είναι δύο: η ανταλλαγή και ο διαμερισμός. 5

6 Γρήγορη Ταξινόμηση Πρώτον, δηλαδή, εκτελούνται ανταλλαγές μεταξύ των στοιχείων του πίνακα έτσι ώστε τα στοιχεία µε μικρότερες τιμές να μετακινηθούν προς τη µία πλευρά, ενώ τα στοιχεία µε μεγαλύτερες τιμές να μετακινηθούν προς την άλλη πλευρά του πίνακα. Έτσι, επακολουθεί η εφαρμογή του δεύτερου χαρακτηριστικού, δηλαδή του διαμερισμού του πίνακα σε δύο μικρότερους που ταξινομούνται ανεξάρτητα μεταξύ τους. Είναι προφανές ότι στους δύο υποπίνακες επιφυλάσσεται η ίδια αντιμετώπιση: ανταλλαγή και διαμερισμός. 6

7 Αλγόριθμος qucksort Δίνεται προς ταξινόμηση ένας πίνακας Α[.. ], που περιέχει ακεραίους αριθμούς. Το pvot αξονικό) είναι ένα στοιχείο του πίνακα, το οποίο παίρνει την τελική του θέση στον πίνακα, ώστε κατόπιν να γίνει ο διαμερισμός σε δύο υποπίνακες με μικρότερα και μεγαλύτερα στοιχεία από το pvot αντίστοιχα. Η επιλογή του pvot μπορεί να γίνει με πολλούς τρόπους. Δεχόμαστε ότι ως pvot λαμβάνεται το πρώτο στοιχείο του πίνακα. 7

8 Ο πίνακας σαρώνεται από τα αριστερά προς τα δεξιά αναζητώντας το πρώτο στοιχείο µε τιμή μεγαλύτερη ή ίση από την τιμή του pvot. 'Υστερα, ο πίνακας σαρώνεται από τα δεξιά προς τα αριστερά αναζητώντας το πρώτο στοιχείο µε τιμή μικρότερη ή ίση από την τιµή του pvot. Όταν εντοπισθούν δύο τέτοια στοιχεία, τότε αυτά ανταλλάσσονται ώστε κατά το δυνατόν να τείνουν να πλησιάσουν προς την τελική τους θέση. Συνεχίζουμε τις σαρώσεις προσπαθώντας να εντοπίσουμε άλλα παρόμοια ζεύγη και να τα ανταλλάξουμε. Κάποια στιγμή οι δύο δείκτες σάρωσης διασταυρώνονται. Τότε η σάρωση σταματά και το pvot λαμβάνει την τελική του θέση εκτελώντας άλλη µία ανταλλαγή μεταξύ του pvot και του στοιχείου όπου σταμάτησε ο δείκτης της σάρωσης από δεξιά. Έτσι, η διαδικασία μπορεί να συνεχίσει στους δύο υποπίνακες κατά τα γνωστά. 8

9 Αλγόριθμος qucksorta, left, rght);. f left < rght the. lo left; h rght + ; pvot A[left]; 3. do 4. do lo lo+ whle A[lo] <= pvot; 5. do h h - whle A[h] >= pvot; 6. f lo < h the swapa[lo], A[h]); 7. whle h >= lo; 8. swapa[left], A[h]); 9. qucksorta, left, h-); 0. qucksorta, h+, rght) 9

10 Επιλογή Pvot Υπάρχουν διάφοροι τρόποι επιλογής του pvot. Στο παράδειγμα επιλέγεται το πρώτο στοιχείο:

11 Διαμερισμός πίνακα Δοθέντος του pvot διαμερίζουμε τα στοιχεία του πίνακα ώστε ο πίνακας που θα προκύψει να αποτελείται από:. Έναν υποπίνακα που περιέχει στοιχεία >= pvot. Έναν υποπίνακα που περιέχει στοιχεία < pvot Οι υποπίνακες αποθηκεύονται στον αρχικό πίνακα. Κατά το διαμοιρασμό γίνεται ανταλλαγή στοιχείων μικρότερων / μεγαλύτερων του pvot.

12 Ένα παράδειγμα pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h

13 4. do lo lo + whle A[lo] <= pvot pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 3

14 Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 4

15 Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 5

16 Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 6

17 Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 7

18 Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 8

19 Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 9

20 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 0

21 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h

22 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h

23 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 3

24 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 4

25 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 5

26 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 6

27 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 7

28 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 8

29 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 9

30 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 30

31 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 3

32 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 3

33 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 33

34 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 34

35 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 35

36 3. do Ένα παράδειγμα 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; 8. swapa[left], A[h]); pvot_dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 36

37 Αποτέλεσμα διαμερισμού [] [] [3] [4] [5] [6] [7] [8] [9] <= Α[pvot] > Α[pvot] 37

38 Αναδρομή: Qucksort Sub-arrays [0] [] [] [3] [4] [5] [6] [7] [8] <= Α[pvot] > Α[pvot] 38

39 Qucksort: Χειρότερη περίπτωση Υποθέτουμε ότι το πρώτο στοιχείο επιλέγεται ως pvot. Υποθέτουμε ότι ο πίνακας είναι ήδη ταξινομημένος: pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 39

40 3. do 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 40

41 3. do 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 4

42 3. do 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 4

43 3. do 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 43

44 3. do 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 44

45 3. do 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; 8. swapa[left], A[h]); pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] lo h 45

46 3. do 4. do lo lo + whle A[lo] <= pvot 5. do h h - whle A[h] >= pvot 6. f lo < h swapa[lo], A[h]) 7. whle h >= lo; 8. swapa[left], A[h]); pvot dex = [] [] [3] [4] [5] [6] [7] [8] [9] <= A[pvot] > A[pvot] 46

47 Πρόταση. Η πολυπλοκότητα της γρήγορης ταξινόμησης είναι Θ ) στη χειρότερη περίπτωση. Απόδειξη Σε πίνακα μεγέθους, το επιλεγόμενο στοιχείο ως pvot στη χειρότερη περίπτωση είναι το μικρότερο ή το μεγαλύτερο ταξινομημένος πίνακας σε αύξουσα ή φθίνουσα διάταξη), και τα μεγέθη των δύο υποπινάκων που θα προκύψουν να είναι 0 και - αντίστοιχα αφού η µία θέση του πίνακα θα καταληφθεί από τον ίδιο τον pvot). Έτσι προκύπτει η ακόλουθη αναδρομική εξίσωση: ) Ο όρος του δεξιού σκέλους αντιστοιχεί στις συγκρίσεις που θα εκτελεσθούν κατά τη σάρωση του πίνακα εντολές 4-5) πριν επιτευχθεί μια διαμέριση. Για την αναδρομική εξίσωση διαδοχικά ισχύει: Με συνεχείς αντικαταστάσεις προς τα πίσω στην ) και Τ0) = 0 προκύπτει ότι:

48 Πρόταση. Η πολυπλοκότητα της γρήγορης ταξινόμησης είναι Θlog ) στην καλύτερη περίπτωση. Απόδειξη Η καλύτερη περίπτωση συμβαίνει όταν κάθε φορά ως pvot επιλέγεται ένα στοιχείο που λαμβάνοντας την τελική του θέση υποδιαιρεί τον πίνακα σε δύο υποπίνακες ίσου μεγέθους. Επομένως ισχύει η αναδρομική εξίσωση: µε αρχικές συνθήκες Τ0) = 0. Για την ευκολία της ανάλυσης υποθέτουμε ότι = k, Οπότε: Ή η απόδειξη όπως το παράδειγμα, σελ. 3, 04_Recurrece Relatos.pdf 48

49 Αθροίζοντας τα αριστερά και δεξιά σκέλη αυτών των εξισώσεων προκύπτει ότι: Eχουμε: k )... log log Η αναδρομική εξίσωση ) είναι πλέον εύκολη υπόθεση καθώς ισχύει διαδοχικά: k φορές = k log =k) log log log... / 4 4 Απόδειξη με κανόνα ορίου) 49

50 Πρόταση 3. Η πολυπλοκότητα της γρήγορης ταξινόμησης είναι Θ log ) στη μέση περίπτωση. Απόδειξη Για να εξετάσουμε τη μέση περίπτωση θα υποθέσουμε ότι για στοιχεία, κάθε διάταξη των στοιχείων αυτών όπου! είναι το πλήθος των διατάξεων) είναι ισοπίθανη. Επομένως, το κάθε φορά επιλεγόμενο pvot τελικά επιλέγεται µε τυχαίο τρόπο και άρα όλα τα στοιχεία έχουν την ίδια πιθανότητα / να αποτελέσουν στοιχείο διαχωρισμού pvot). Ετσι καταλήγουμε σε τυχαίες διαμερίσεις του πίνακα, σε υποπίνακες μεγέθους k και -k-, όπου k=0,,, -. Θα χειρισθούμε τη μέση περίπτωση µε τη βοήθεια της επόμενης αναδρομικής εξίσωσης για : k0 k k µε αρχικές συνθήκες Τ0) = 0. 50

51 k0 k k µε αρχικές συνθήκες Τ0) = 0. Λόγω ισομετρίας και των αρχικών συνθηκών, η προηγούμενη αναδρομική εξίσωση μετασχηματίζεται σε: k 0 k k 0) )... ) 0 ) )... ) ) 0... ) 0 ) )... ) 0)... ) ) )... ) k k k) k) k k k άρα k 5

52 Τη σχέση πολλαπλασιάζουμε επί και προκύπτει Επίσης στην ίδια σχέση αντικαθιστούμε το με - και πολλαπλασιάζουμε με -, οπότε προκύπτει: Αφαιρώντας τα αντίστοιχα σκέλη των δυο τελευταίων εκφράσεων: ) k k k k ) προκύπτει k k k k ) k k ) ) k k k k ) k k k k ) ) ) ) 5

53 ) ) ) ) ) ) ) ) 3 ) ) ) ) 5 3) ) 3 3 ) 3 ) Με διαδοχικές αντικαταστάσεις του με - με ) προκύπτει: Αθροίζοντας αντίστοιχα τα αριστερά και δεξιά σκέλη και απλοποιώντας προκύπτει : ) ) 3 ) 3 ) ) 3 ) ) 3 ) ) 3 Επομένως πρέπει να υπολογίσουμε το άθροισμα του δεξιού σκέλους: ) ) ) ) ) ) ) ) ) 53

54 H H H H H H H H H 3 ) 7 ) ) 3 7 ) H H 3 7 ) 3 ) 7 ) ) H H 3 ) ) 3 H l log H H... 3 log log ) ) 54

55 55

56 Qucksort: χώρος αποθήκευσης Η γρήγορη ταξινόμηση δεν είναι επιτόπιος αλγόριθμος, δηλαδή δεν αρκείται στο χώρο του συγκεκριμένου πίνακα αλλά χρειάζεται επιπλέον χώρο. Ο χώρος αυτός δεν φαίνεται καθαρά στον ανωτέρω κώδικα αλλά απαιτείται από το μεταγλωττιστή κατά την αναδρομή. Εύλογα προκύπτει η ερώτηση σχετικά µε το μέγεθος αυτού του απαιτούμενου χώρου. Στη χειρότερη περίπτωση το μέγιστο βάθος της αναδρομής θα είναι - κλήσεις, αριθμός υπερβολικός. Για το λόγο αυτό έχει σχεδιάσει µια επαναληπτική εκδοχή της γρήγορης ταξινόμησης, δηλαδή µια εκδοχή που υλοποιεί την απαραίτητη στοίβα, όπου τοποθετούνται τα όρια του μικρότερου υποπίνακα, όπως φαίνεται στην επόμενη διαδικασία teratve_qucksort. 56

57 Αλγόριθμος teratve_qucksortleft,rght);. do. whle left < rght) do 3. lo left ; h rght+; pvot A[left]; p=left; q=rght; 4. do 5. do lo + whle A[lo]<=pvot; 6. do h h- whle A[h]>=pvot; 7. f lo<h the swapa[lo], A[h]); 8. whle h>=lo; 9. swapa[left], A[h]); 0. f h - p) < q - h)) the. pushh+); pushq); q h-;. else 3. pushp); pushh-); p h+; 4. f stack s empry the retur; 5. popq); popp); 6. whle true) 57

58 Ταξινόμηση µε Συγχώνευση Με τον όρο συγχώνευση mergg) εννοούμε την πράξη της δημιουργίας ενός νέου ταξινομημένου πίνακα που περιέχει όλα τα στοιχεία δύο ή και περισσοτέρων) πινάκων, που είναι ήδη ταξινομημένοι. Η διαδικασία Merge που ακολουθεί υλοποιεί τη συγχώνευση δύο ταξινομημένων πινάκων Α και Β µε και m ακεραίους αντίστοιχα) στον πίνακα C. Θεωρείται ότι οι δύο πίνακες έχουν και µία επιπλέον θέση που χρησιμεύει για την αποθήκευση ενός φρουρού setel). 58

59 Αλγόριθμος merge;. ; j ;. Α[+] maxt; Β[m+] maxt; 3. for k to +m do 4. f Α[] < Β[j] the 5. C[k] Α[]; + 6. else 7. C[k] Β[j]; j j+ Από το βρόχο της εντολής 3, είναι προφανές ότι η πολυπλοκότητα της συγχώνευσης είναι Θ+m), θεωρώντας φραγμένο από επάνω το κόστος της ερώτησης της εντολής

60 Merge sort H ταξινόμηση µε ευθεία συγχώνευση straght merge sort) κατά καιρούς έχει υλοποιηθεί µε πλήθος τρόπων, όπως επαναληπτικά ή αναδρομικά, για λίστες ή πίνακες κοκ. Στη συνέχεια ακολουθεί µία εκδοχή της για πίνακες, η oποία αποτελείται από δύο τρήματα: την αναδρομική merge_sort και τη merge. Στις εντολές 6-8 της merge_sort βρίσκεται το μεσαίο στοιχείο του πίνακα και εκτελούνται κλήσεις στους δύο υποπίνακες που προκύπτουν. Από εδώ προκύπτει ότι η μέθοδος ανήκει στην οικογένεια των αλγορίθμων Διαίρει και Βασίλευε. Η διαδικασία merge που καλείται όταν προκύψουν στοιχειώδεις υποπίνακες αναλαμβάνει τις συγκρίσεις των στοιχείων και τα τακτοποιεί µε τη βοήθεια ενός βοηθητικού πίνακα Β 60

61 Αλγόριθμος mergea, left, mddle, rght);. frst left; secod mddle +; temp left;. whle frst <= mddle) ad secod <= rght) do 3. f A[frst] <= A[secod] the 4. Β[temp] A[frst]; frst frst +; 5. else 6. Β[temp] A[secod]; secod secod + ; 7. temp temp+ 8. f frst<= mddle the 9. for k frst to mddle do 0. Β[temp] A[k]; temp temp +. else. for k secod to rght do 3. Β[temp] A[k]; temp temp + 4. for k left to rght do A[k] B[k] 6

62 Αλγόριθμος merge_sorta, left, rght); 5. f left < rght the 6. mddle left + rght)/ ; //dvde step 7. merge_sorta, left, mddle); //coquer step 8. merge_sorta, mddle+,rght); //coquer step 9. mergea, left, mddle, rght) //combe step 6

63 Σχήμα : Σειρά κλήσεων merge_sort Σχήμα : Σειρά κλήσεων merge Αν εφαρμόσουμε τις ανωτέρω διαδικασίες σε πίνακα Α=[5,, 7, 56, 5, 0, 9, 90, 45} µε τα 9 κλειδιά, τότε η mergesort θα κληθεί 7 φορές µε τη σειρά που απεικονίζεται επάνω από κάθε κόμβο του σχήματος, ενώ μέσα σε κάθε κόμβο φαίνονται τα ορίσματα της αντίστοιχος κλήσης. Στο Σχήµα φαίνονται 8 κλήσεις της merge, µε την αντίστοιχη τάξη εκτός του κόμβου και τα ορίσματα εντός του κόμβου. Και στις δύο περιπτώσεις η διάσχιση του δένδρου ακλουθεί τη λογική της αναζήτησης µε προτεραιότητα βάθους dfs). 63

64 Ένα παράδειγμα 64

65 Ένα παράδειγμα 65

66 Πρόταση 5. Η πολυπλοκότητα της merge_sort είναι Θ log ) στη χειρότερη περίπτωση. Απόδειξη Από τον αλγόριθμο merge_sort εξάγουμε την επόμενη αναδρομική εξίσωση: µε αρχική συνθήκη Τ) =, ενώ οι τρεις όροι του δεξιού σκέλους αντιστοιχούν στις εντολές 7-9. Συγκεκριμένα το κόστος σε συγκρίσεις της εντολής 9 προκύπτει από όσα αναφέρθησαν προηγουμένως για τη διαδικασία συγχώνευσης πινάκων. Για την ευκολία της ανάλυσης υποθέτουμε ότι = k, έτσι ώστε το κάθε βήμα διαμερισμού οδηγεί σε υποπροβλήματα ακριβώς μεγέθους /. Από την αναδρομική εξίσωση ισχύει διαδοχικά: 66

67 k k k k k = k log =k log log 67 Απόδειξη με κανόνα ορίου)

68 Η μέθοδος ταξινόμησης µε ευθεία συγχώνευση αξίζει την προσοχή µας γιατί είναι πολύ ευσταθής stable) μέθοδος, δηλαδή ανεξάρτητα από τη φύση των δεδομένων θα εκτελέσει τον ίδιο αριθμό συγκρίσεων στη μέση και τη χειρότερη περίπτωση. Το χαρακτηριστικό αυτό έρχεται σε αντίθεση µε το μειονέκτημα της γρήγορης ταξινόμησης, που διακρίνεται από πολυπλοκότητα Θ ) για τη χειρότερη περίπτωση. Ωστόσο, το συμπέρασμα αυτό προκύπτει γιατί στην ανάλυση λάβαμε υπόψη µας µόνο το πλήθος των εκτελούμενων συγκρίσεων. Σε µία πραγματική υλοποίηση, η χρήση του βοηθητικού πίνακα Β και οι εκτελούμενες καταχωρήσεις είναι επίσης πράξεις µη αμελητέου χρονικού κόστους, οι οποίες επιβαρύνουν τη συνολική επίδοση. Τελικώς, αν και η ταξινόμηση µε συγχώνευση δεν είναι ίσως η καλύτερη μέθοδος ταξινόμησης στην κύρια μνήμη, εν τούτοις αποτελεί τη βάση για μεθόδους εξωτερικής ταξινόμησης. 68

69 Ο αλγόριθμος merge μπορεί να μπορεί να εκφραστεί εναλλακτικά με τη χρήση βοηθητικών πινάκων L και R όπου αντιγράφονται τα στοιχεία του πίνακα Α, συγκεκριμένα τα A[left.. mddle] αντιγράφονται στον L[.. ] και A[mddle +.. rght ] αντιγράφονται στον R[.. ] όπου = mddle left + και = rght mddle. Χρησιμοποιούμε μια τιμή φρουρό την τιμή ) και την τοποθετούμε στη θέση L[+] και R[+], έτσι δε χρειάζεται να ελέγξουμε αν κάποιος από τους πίνακες είναι κενός. 69

70 merge A, left, mddle, rght ). mddle left +. rght mddle 3. Create arrays L[.. + ] ad R[.. + ] 4. for to do 5. L[] A[left + ] 6. for j to do 7. R[j] A[rght + j ] 8. L[ + ] 9. R[ + ] 0.. j. for k left to rght do 3. f L[ ] R[ j] the 4. A[k] L[] else A[k] R[j] 7. j j + 70

71 7

72 Ανάλυση πολυπλοκότητας Merge sort με Κύριο θεώρημα Τα πρώτα for loops γραμμή 4 και 6) χρειάζονται Θ + ) = Θ) χρόνο. Το τελευταίο for loop γραμμή ) εκτελεί επαναλήψεις, κάθε μια απαιτεί σταθερό χρόνο. Συνεπώς ο συνολικός χρόνος είναι Θ). Για απλότητα θεωρούμε το ως δύναμη του έτσι ώστε το βήμα διαμοιρασμού να οδηγεί σε υποπροβλήματα ιδίου μεγέθους /. Η βασική περίπτωση συμβαίνει για =. Για, ο χρόνος για την εκτέλεση των βημάτων του merge sort:. Διαίρει Dvde): Υπολογισμός του mddle ως μέσος όρος των left και rght που απαιτεί σταθερό χρόνο Θ).. Κυρίευε Coquer): Αναδρομική επίλυση των υποπροβλημάτων, καθένα μεγέθους /, δηλαδή /). 3. Συνδύασε Combe): Συγχώνευση σε ένα πίνακα με -στοιχεία απαιτεί Θ) χρόνο. Αθροίζοντας τα παραπάνω ) & 3) δίνουν μια συνάρτηση που είναι γραμμικού χρόνου, δηλαδή Θ). Προσθέτοντας τον όρο /) από το βήμα «κυρίευε» ) καταλήγουμε στην παρακάτω αναδρομική σχέση Αρα η αναδρομική σχέση για το merge sort είναι: 7

73 Ανάλυση πολυπλοκότητας Merge sort με Κύριο θεώρημα Η αναδρομική σχέση για το merge sort είναι: Με βάση το κεντρικό θεώρημα έχουμε: Εστω a, και b > σταθερές, f) μια συνάρτηση και Τ) μια συνάρτηση που ορίζεται επί των μη αρνητικών ακεραίων από την αναδρομική σχέση a b f Όπου /b εννοείται είτε b είτε b. Στην περίπτωση αυτή το Τ) μπορεί να φραγεί ασυμπτωτικά ως εξής: f f f log O a log a log a b b b log a log a log για κάποια σταθερά ε > 0, τότε τότε για κάποια σταθερά ε > 0, και αν b για κάποια σταθερά ε < και για όλα τα από κάποια τιμή και πάνω, τότε af f b cf b Με βάση το Κύριο θεώρημα Master heorem) έχουμε a =, b =, f) = Θ), τότε log log log 73

74 Η η εικόνα δείχνει ότι για το αρχικό πρόβλημα έχουμε κόστος c και επιπλέον δυο υποπροβλήματα που το καθένα κοστίζει /). Η η εικόνα δείχνει ότι για καθένα από τα υποπροβλήματα μεγέθους-/, έχουμε κόστος c/, και επιπλέον υποπροβλήματα που το καθένα κοστίζει /4). Και συνεχίζουμε με την επέκταση του δένδρου μέχρις ότου η διάσταση του κάθε υποπροβλήματος να γίνει. Στο δένδρο αναδρομής κάθε επίπεδο έχει κόστος c. Το ο επίπεδο έχει κόστος c. Το επόμενο επίπεδο έχει υποπροβλήματα με κόστος το καθένα c/. Το επόμενο επίπεδο έχει 4 υποπροβλήματα με κόστος το καθένα c/4. Κάθε φορά που κατεβαίνουμε επίπεδο το πλήθος των υποπροβλημάτων διπλασιάζεται αλλά το κόστος κάθε υποπροβλήματος μειώνεται στο μισό. log

75 Δένδρο αναδρομής Αθροίζοντας τα κόστη σε κάθε επίπεδο του δένδρου, έχουμε: Στο υψηλότερο επίπεδο έχουμε c/) + c/) = c Στο επόμενο αυτού : c/4) + c/4) c/4) + c/4) = c.. Γενικά στο επίπεδο που απέχει βαθμίδες από την κορυφή έχει κόμβους καθένας συνεισφέρει στο κόστος μια ποσότητα c/ ). Επομένως το επίπεδο αυτό έχει συνολικό κόστος c/ ) = c. Στο χαμηλότερο επίπεδο υπάρχουν κόμβοι, καθένας από τους οποίους συνεισφέρει κόστος c, οπότε το συνολικό κόστος του επιπέδου αυτού είναι c Συνεπώς το κόστος σε κάθε επίπεδο παραμένει το ίδιο. Το ύψος του δένδρου αναδρομής είναι log και έχει log + επίπεδα. log

76 76

77 Mergesort Qucksort 77

78 Τέλος Ενότητας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ταχεία Ταξινόμηση 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

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

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

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

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

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

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

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

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

Ταξινόμηση. 1. Ταξινόμηση με Εισαγωγή 2. Ταξινόμηση με Επιλογή. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση. Ταξινόμηση με Εισαγωγή. Ταξινόμηση με Επιλογή Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Ταξινόμηση Η ταξινόμηση sortg τοποθετεί ένα σύνολο κόμβων ή εγγραφών σε μία συγκεκριμένη διάταξη

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

Τίτλος Μαθήματος: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

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

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

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

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

Ταξινόμηση με συγχώνευση 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 Διαίρει και Βασίλευε Η μέθοδος του «Διαίρει και Βασίλευε» είναι μια γενική αρχή σχεδιασμού αλγορίθμων

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

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

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

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

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή

3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ. n! = 1*2*3*..(n-1)*n. n! = 1 αν n = 0, = n*(n-1)! αν n > ΑΝΑ ΡΟΜΗ Εισαγωγή 3 ΑΝΑ ΡΟΜΗ ΑΝΑΖΗΤΗΣΗ - ΤΑΞΙΝΟΜΗΣΗ 3.1 ΑΝΑ ΡΟΜΗ 3.1.1 Εισαγωγή ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ Αναδροµή είναι η µέθοδος κατά την οποία, σε µία γλώσσα προγραµµατισµού, µία διαδικασία ή συνάρτηση έχει την δυνατότητα

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

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε

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

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

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

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

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

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

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης Ουρές Προτεραιότητας: Υπενθύμιση Σωροί / Αναδρομή / Ταξινόμηση Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς (Abstract Data Type) με μεθόδους: Μπορεί να υλοποιηθεί με

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

Διάλεξη 04: Παραδείγματα Ανάλυσης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 5: Αναδρομικές σχέσεις - Υπολογισμός Αθροισμάτων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη

Όρια Αλγόριθμων Ταξινόμησης. Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Όρια Αλγόριθμων Ταξινόμησης Εισαγωγή στην Ανάλυση Αλγορίθμων Μάγια Σατρατζέμη Όρια Αλγόριθμων Ταξινόμησης Μέχρι στιγμής εξετάσθηκαν μέθοδοι ταξινόμησης µε πολυπλοκότητα της τάξης Θ ) ή Θlog ). Τι εκφράζει

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

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

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

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

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

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

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

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 1: Εισαγωγή- Χαρακτηριστικά Παραδείγματα Αλγορίθμων Στεφανίδης Γεώργιος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 19: Αλγόριθμοι ΤαξινόμησηςII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Γ. MergeSort Ταξινόμηση με Συγχώνευση Δ. BucketSort Ταξινόμηση με Κάδους Διδάσκων:

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

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

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

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

Προχωρημένες έννοιες προγραμματισμού σε C

Προχωρημένες έννοιες προγραμματισμού σε C Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)

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

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (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

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην

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

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

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

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

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

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

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

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

Αλγόριθμοι Ταξινόμησης 8 Αλγόριθμοι Ταξινόμησης Περιεχόμενα Κεφαλαίου 8.1 Ταξινόμηση με Εισαγωγή.................. 225 8.2 Ταξινόμηση με Επιλογή................... 226 8.3 Γρήγορη Ταξινόμηση.................... 229 8.4 Στατιστικά

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

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

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

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

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

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

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

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

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

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

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

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

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

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 04: ΠαραδείγματαΑνάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα -Γραμμική

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός

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

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

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

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

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

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

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

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

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

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

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

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο

auth Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Εξάμηνο 4ο Σχεδίαση Αλγορίθμων Διαίρει και Βασίλευε http://delab.csd.auth.gr/courses/algorithms/ auth 1 Διαίρει και Βασίλευε Η γνωστότερη ρημέθοδος σχεδιασμού αλγορίθμων: 1. Διαιρούμε το στιγμιότυπο του προβλήματος

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

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι

Εισαγωγή στην επιστήμη των υπολογιστών. Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι Εισαγωγή στην επιστήμη των υπολογιστών Λογισμικό Υπολογιστών Κεφάλαιο 8ο Αλγόριθμοι 1 Έννοια Ανεπίσημα, ένας αλγόριθμος είναι μια βήμα προς βήμα μέθοδος για την επίλυση ενός προβλήματος ή την διεκπεραίωση

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

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

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

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

Προγραμματισμός Η/Υ. Αναζήτηση & Ταξινόμηση. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Αναζήτηση & Ταξινόμηση. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Αναζήτηση & Ταξινόμηση ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Αναζήτηση Το πρόβλημα της αναζήτησης (searching) ενός στοιχείου σε

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

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

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

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

Μαθηματικά. Ενότητα 6: Ασκήσεις Ορίων Συνάρτησης. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Μαθηματικά. Ενότητα 6: Ασκήσεις Ορίων Συνάρτησης. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Μαθηματικά Ενότητα 6: Ασκήσεις Ορίων Συνάρτησης Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας

Αλγόριθμοι και Πολυπλοκότητα Φώτης Ε. Ψωμόπουλος, Περικλής Α. Μήτκας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Καθηγητής: Περικλής

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

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

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

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

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

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

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

Στατιστική Επιχειρήσεων

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

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

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

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

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

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

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

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

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S

επιστρέφει το αμέσως μεγαλύτερο από το x στοιχείο του S επιστρέφει το αμέσως μικρότερο από το x στοιχείο του S Μελετάμε την περίπτωση όπου αποθηκεύουμε ένα (δυναμικό) σύνολο στοιχειών,, τα οποίo είναι υποσύνολο του. Υποστηριζόμενες λειτουργίες αναζήτηση(s,x): εισαγωγή(s,x): διαγραφή(s,x): διάδοχος(s,x): προκάτοχος(s,x):

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

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

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

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

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

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

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 6: ΠαραδείγματαΑνάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα -Γραμμική

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

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

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

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

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

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

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

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

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

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

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις Ο ΑΤΔ Λεξικό Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος Υλοποιήσεις Πίνακας με στοιχεία bit (0 ή 1) (bit vector) Λίστα ακολουθιακή (πίνακας) ή συνδεδεμένη Είναι γνωστό το μέγιστο

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

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

Διαδικαστικός Προγραμματισμός Διαδικαστικός Προγραμματισμός Ενότητα 8: Παραδείγματα με μονοδιάστατους πίνακες, συναρτήσεις, δείκτες, πέρασμα παραμέτρων με αναφορά Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Δομές Δεδομένων. Ενότητα 13: B-Δέντρα/AVL-Δέντρα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων

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

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

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

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

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