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

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

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

Transcript

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

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

3 Παράδειγμα Είσοδος 100, 4, 200, 8, 11, 12, 20, 100, 4 Έξοδος 200, 100, 100, 20, 12, 11, 8, 4, 4 Χαροκόπειο Πανεπιστήμιο 3/70

4 Χρήση Ταξινόμησης Η ταξινόμηση είναι από τα πιο θεμελιώδη προβλήματα στην επιστήμη των υπολογιστών. Άμεση Εφαρμογή π.χ σε μια εφαρμογή e-banking θέλουμε να δούμε τις συναλλαγές μας ταξινομημένες με την ημερομηνία Βάση για άλλους αλγορίθμους Οι τεχνικές που έχουν προκύψει με την μελέτη την ταξινόμησης μας βοηθούν να λύσουμε και άλλα προβλήματα. Γενικά η ταξινόμηση εμφανίζεται συνέχεια στην επιστήμη των υπολογιστών. Χαροκόπειο Πανεπιστήμιο 4/70

5 Μοντέλο Υπολογισμού Μας ενδιαφέρει να μετρήσουμε τον χρόνο που παίρνει να ταξινομήσουμε n αριθμούς. Πρέπει όμως να καθορίσουμε τι μετράμε ακριβώς... Χαροκόπειο Πανεπιστήμιο 5/70

6 Μοντέλα Υπολογισμού Εσωτερική ταξινόμηση Γίνεται στην μνήμη του υπολογιστή Χαροκόπειο Πανεπιστήμιο 6/70

7 Μοντέλα Υπολογισμού Εσωτερική ταξινόμηση Γίνεται στην μνήμη του υπολογιστή Εξωτερική ταξινόμηση Οι αριθμοί δεν χωρούν όλοι στην μνήμη ταυτόχρονα, οπότε χρησιμοποιείται και ο σκληρός δίσκος Χαροκόπειο Πανεπιστήμιο 6/70

8 Μοντέλα Υπολογισμού Μοντέλο Σύγκρισης Θεωρούμε πως ο χρόνος εκτέλεσης είναι ανάλογος με τον αριθμό των συγκρίσεων που θα γίνουν ώστε να ταξινομήσουμε n αριθμούς. Με άλλα λόγια μετράμε μόνο τον αριθμό των συγκρίσεων. Χαροκόπειο Πανεπιστήμιο 7/70

9 Μοντέλα Υπολογισμού Μοντέλο Σύγκρισης Θεωρούμε πως ο χρόνος εκτέλεσης είναι ανάλογος με τον αριθμό των συγκρίσεων που θα γίνουν ώστε να ταξινομήσουμε n αριθμούς. Με άλλα λόγια μετράμε μόνο τον αριθμό των συγκρίσεων. Άλλα μοντέλα Στους σύγχρονους υπολογιστές όμως μπορούμε να ταξινομήσουμε και με άλλους τρόπους, χωρίς καθόλου συγκρίσεις. Χαροκόπειο Πανεπιστήμιο 7/70

10 Ταξινόμηση Επιλογής Selection Sort Είσοδος Πίνακας a[0..n 1] με n στοιχεία Αλγόριθμος βρες το μικρότερο στοιχείο του πίνακα και κάνε αντιμετάθεση με το πρώτο βρες το δεύτερο μικρότερο στοιχείο του πίνακα και κάνε αντιμετάθεση με το δεύτερο... Χαροκόπειο Πανεπιστήμιο 8/70

11 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

12 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

13 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

14 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

15 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

16 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

17 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

18 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

19 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

20 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

21 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

22 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

23 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

24 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

25 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

26 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

27 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

28 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

29 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

30 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

31 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

32 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

33 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

34 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

35 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

36 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

37 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

38 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

39 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

40 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

41 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

42 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

43 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

44 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

45 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

46 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

47 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

48 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

49 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

50 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

51 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

52 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

53 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

54 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

55 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

56 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

57 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

58 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

59 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

60 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

61 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

62 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

63 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

64 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

65 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

66 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

67 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

68 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

69 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

70 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

71 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

72 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

73 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

74 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

75 Ταξινόμηση Επιλογής Selection Sort Χαροκόπειο Πανεπιστήμιο 9/70

76 Χρόνος Εκτέλεσης Ταξινόμησης Επιλογής για να βρούμε το πρώτο στοιχείο κάνουμε n 1 συγκρίσεις για το δεύτερο n 2 συγκρίσεις κ.τ.λ Χαροκόπειο Πανεπιστήμιο 10/70

77 Χρόνος Εκτέλεσης Ταξινόμησης Επιλογής για να βρούμε το πρώτο στοιχείο κάνουμε n 1 συγκρίσεις για το δεύτερο n 2 συγκρίσεις κ.τ.λ Συνολικός αριθμός συγκρίσεων: (n 1) + (n 2) = n(n 1)/2 = O(n 2 ) Χαροκόπειο Πανεπιστήμιο 10/70

78 Ταξινόμηση με εισαγωγή Insertion Sort σε κάθε βήμα παίρνουμε ένα κλειδί και το βάζουμε στην σωστή σειρά μέχρι να μας τελειώσουν τα κλειδιά ταξινοµηµένα κλειδιά µη ταξινοµηµένα κλειδιά x > x x ταξινοµηµένα κλειδιά µη ταξινοµηµένα κλειδιά x x > x Χαροκόπειο Πανεπιστήμιο 11/70

79 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

80 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

81 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

82 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

83 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

84 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

85 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

86 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

87 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

88 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

89 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

90 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

91 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

92 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

93 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

94 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

95 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

96 Ταξινόμηση με εισαγωγή Insertion Sort Χαροκόπειο Πανεπιστήμιο 12/70

97 Χρόνος Εκτέλεσης Ταξινόμησης με Εισαγωγή για το i στοιχείο κάνουμε στην χειρότερη περίπτωση i 1 συγκρίσεις Χαροκόπειο Πανεπιστήμιο 13/70

98 Χρόνος Εκτέλεσης Ταξινόμησης με Εισαγωγή για το i στοιχείο κάνουμε στην χειρότερη περίπτωση i 1 συγκρίσεις Συνολικός αριθμός συγκρίσεων: (n 1) = n(n 1)/2 = O(n 2 ) Χαροκόπειο Πανεπιστήμιο 13/70

99 Ταξινόμησης Φυσαλίδας Bubble Sort Σαρώνουμε τον πίνακα αντιμεταθέτοντας γειτονικά στοιχεία που βρίσκονται σε λάθος σειρά, μέχρι να μη μπορούμε να αντιμεταθέσουμε τίποτα. Χαροκόπειο Πανεπιστήμιο 14/70

100 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

101 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

102 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

103 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

104 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

105 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

106 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

107 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

108 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

109 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

110 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

111 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

112 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

113 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

114 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

115 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

116 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

117 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

118 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

119 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

120 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

121 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

122 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

123 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

124 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

125 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

126 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

127 Ταξινόμησης Φυσαλίδας Bubble Sort Χαροκόπειο Πανεπιστήμιο 15/70

128 Ταξινόμησης Φυσαλίδας Bubble Sort Στο πέρασμα i έχουμε βάλει στην σωστή θέση τουλάχιστον τα i μικρότερα κλειδιά. Στην χειρότερη περίπτωση πρέπει για να κάνουμε n περάσματα (εάν η ακολουθία εισόδου είναι φθίνουσα). Χαροκόπειο Πανεπιστήμιο 15/70

129 Χρόνος Εκτέλεσης Ταξινόμησης Φυσαλίδας στο i πέρασμα κάνουμε n i συγκρίσεις και μπορεί να πρέπει να κάνουμε n περάσματα Χαροκόπειο Πανεπιστήμιο 16/70

130 Χρόνος Εκτέλεσης Ταξινόμησης Φυσαλίδας στο i πέρασμα κάνουμε n i συγκρίσεις και μπορεί να πρέπει να κάνουμε n περάσματα Συνολικός αριθμός συγκρίσεων: (n 1) = n(n 1)/2 = O(n 2 ) Χαροκόπειο Πανεπιστήμιο 16/70

131 Στοιχειώδεις Μέθοδοι Ταξινόμησης O(n 2 ) ταξινόμηση επιλογής (selection sort) ταξινόμηση εισαγωγής (insertion sort) ταξινόμηση φυσαλίδας (bubble sort) Μειονέκτημα Για 10 6 κλειδιά χρειάζονται περίπου συγκρίσεις Θα δούμε πως μπορούμε και καλύτερα.. Χαροκόπειο Πανεπιστήμιο 17/70

132 Διπλά Κλειδιά και Ευσταθής Ταξινόμηση Πολλές φορές έχουμε εγγραφές με διπλά κλειδιά, πχ Όνομα Αριθμός Μητρώου Βαθμός Κώστας 1 8 Ελένη 2 9 Νίκος Γιάννης 4 8 Χαροκόπειο Πανεπιστήμιο 18/70

133 Διπλά Κλειδιά και Ευσταθής Ταξινόμηση Πολλές φορές έχουμε εγγραφές με διπλά κλειδιά, πχ Όνομα Αριθμός Μητρώου Βαθμός Κώστας 1 8 Ελένη 2 9 Νίκος Γιάννης 4 8 Ορισμός Μια μέθοδος ταξινόμησης ονομάζεται ευσταθής (stable) αν διατηρεί τη σχετική σειρά των στοιχείων ενός αρχείου με διπλά κλειδιά. Χαροκόπειο Πανεπιστήμιο 18/70

134 Διπλά Κλειδιά και Ευσταθής Ταξινόμηση Όνομα Αριθμός Μητρώου Βαθμός Κώστας 1 8 Ελένη 2 9 Νίκος Γιάννης 4 8 Νίκος Κώστας 1 8 Γιάννης 4 8 Ελένη 2 9 ευσταθής Νίκος Γιάννης 4 8 Κώστας 1 8 Ελένη 2 9 μη-ευσταθής Χαροκόπειο Πανεπιστήμιο 19/70

135 Ταξινόμηση σε Θέση In-Place Μια ταξινόμηση ονομάζεται ταξινόμηση σε θέση εάν δεν χρησιμοποιεί βοηθητικό χώρο για την ταξινόμηση, αλλά απλά χρησιμοποιεί τον χώρο που καταλαμβάνει η είσοδος. Χαροκόπειο Πανεπιστήμιο 20/70

136 Γρήγορη Ταξινόμηση Quicksort Η γρήγορη ταξινόμηση είναι η πιο συνήθης επιλογής για όλα τα σύγχρονα συστήματα. Ανήκει σε μια κατηγορία αλγορίθμων που λέγονται Διαίρει και Βασίλευε, μιας και μοιράζει το πρόβλημα σε μικρότερα ανεξάρτητα υποπροβλήματα και τα λύνει αναδρομικά. στην χειρότερη περίπτωση τρέχει σε O(n 2 ) χρόνο στην μέση περίπτωση όμως τρέχει σε χρόνο O(n log n) είναι εύκολο να αποφύγουμε την χειρότερη περίπτωση με μεγάλη πιθανότητα Είναι πάρα πολύ γρήγορη στην πράξη... Χαροκόπειο Πανεπιστήμιο 21/70

137 Γρήγορη Ταξινόμηση Quicksort διάλεξε ένα κλειδί του πίνακα a[0..n 1] το οποίο θα είναι το στοιχείο διαμέρισης έπειτα αναδιατάσσουμε τα στοιχεία του πίνακα a έτσι ώστε όλα τα κλειδιά που είναι μικρότερα του στοιχείου διαμέρισης να είναι στα αριστερά του και όλα τα μεγαλύτερα κλειδιά στα δεξιά του έπειτα ταξινομούμε αναδρομικά το αριστερό και το δεξιό μέρος του πίνακα Χαροκόπειο Πανεπιστήμιο 22/70

138 Γρήγορη Ταξινόμηση Quicksort p p διαµέριση p > p ανεξάρτητο υποπρόβληµα σωστή ϑέση ανεξάρτητο υποπρόβληµα Χαροκόπειο Πανεπιστήμιο 23/70

139 Γρήγορη Ταξινόμηση Quicksort είσοδος a[0..8] επιλογή στοιχείου διαµέρισης διαµέριση ανεξάρτητη επίλυση είσοδος a[0..3] ανεξάρτητη επίλυση είσοδος a[5..8] Χαροκόπειο Πανεπιστήμιο 24/70

140 Διαμέριση (partition) σε θέση µικρότερο ή ίσο του p µεγαλύτερο ή ίσο του p p l i j r Μπορούμε να κάνουμε διαμέριση σε θέση (in place) χρησιμοποιώντας δύο δείκτες i και j, ένα από αριστερά και ένα από δεξιά. Κινούνται προς το κέντρο μέχρι ο αριστερός να βρει ένα κλειδί μεγαλύτερο από το κλειδί διαμέρισης και ο δεξιός ένα κλειδί μικρότερο από το κλειδί διαμέρισης. Τα κλειδιά αυτά αντιμετατίθενται. Η διαδικασία συνεχίζει μέχρι οι δείκτες να συναντηθούν. Το στοιχείο διαμέρισης μπαίνει στη θέση του δεξιού δείκτη. Χαροκόπειο Πανεπιστήμιο 25/70

141 Παράδειγμα Διαμέρισης i j Επιλογή στοιχείου διαμέρισης Χαροκόπειο Πανεπιστήμιο 26/70

142 Παράδειγμα Διαμέρισης i j Στοιχείο διαμέρισης το 12 Χαροκόπειο Πανεπιστήμιο 26/70

143 Παράδειγμα Διαμέρισης i j Μετακινούμε το στοιχείο διαμέρισης στο τέλος Χαροκόπειο Πανεπιστήμιο 26/70

144 Παράδειγμα Διαμέρισης i j Μετακινούμε το στοιχείο διαμέρισης στο τέλος Χαροκόπειο Πανεπιστήμιο 26/70

145 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μεγαλύτερου του 12 από αριστερά Χαροκόπειο Πανεπιστήμιο 26/70

146 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μεγαλύτερου του 12 από αριστερά Χαροκόπειο Πανεπιστήμιο 26/70

147 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μικρότερου του 12 από δεξιά Χαροκόπειο Πανεπιστήμιο 26/70

148 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μικρότερου του 12 από δεξιά Χαροκόπειο Πανεπιστήμιο 26/70

149 Παράδειγμα Διαμέρισης i j Αντιμετάθεση στοιχείων Χαροκόπειο Πανεπιστήμιο 26/70

150 Παράδειγμα Διαμέρισης i j Αντιμετάθεση στοιχείων Χαροκόπειο Πανεπιστήμιο 26/70

151 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μεγαλύτερου του 12 από αριστερά Χαροκόπειο Πανεπιστήμιο 26/70

152 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μεγαλύτερου του 12 από αριστερά Χαροκόπειο Πανεπιστήμιο 26/70

153 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μεγαλύτερου του 12 από αριστερά Χαροκόπειο Πανεπιστήμιο 26/70

154 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μικρότερου του 12 από δεξιά Χαροκόπειο Πανεπιστήμιο 26/70

155 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μικρότερου του 12 από δεξιά Χαροκόπειο Πανεπιστήμιο 26/70

156 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μικρότερου του 12 από δεξιά Χαροκόπειο Πανεπιστήμιο 26/70

157 Παράδειγμα Διαμέρισης i j Αντιμετάθεση στοιχείων Χαροκόπειο Πανεπιστήμιο 26/70

158 Παράδειγμα Διαμέρισης i j Αντιμετάθεση στοιχείων Χαροκόπειο Πανεπιστήμιο 26/70

159 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μεγαλύτερου του 12 από αριστερά Χαροκόπειο Πανεπιστήμιο 26/70

160 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μεγαλύτερου του 12 από αριστερά Χαροκόπειο Πανεπιστήμιο 26/70

161 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μεγαλύτερου του 12 από αριστερά Χαροκόπειο Πανεπιστήμιο 26/70

162 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μικρότερου του 12 από δεξιά Χαροκόπειο Πανεπιστήμιο 26/70

163 Παράδειγμα Διαμέρισης i j Αναζήτηση στοιχείου μικρότερου του 12 από δεξιά Χαροκόπειο Πανεπιστήμιο 26/70

164 Παράδειγμα Διαμέρισης i, j Αναζήτηση στοιχείου μικρότερου του 12 από δεξιά Χαροκόπειο Πανεπιστήμιο 26/70

165 Παράδειγμα Διαμέρισης i, j Ανταλλαγή στοιχείου διαμέρισης με δεξί δείκτη Χαροκόπειο Πανεπιστήμιο 26/70

166 Παράδειγμα Διαμέρισης i, j Ανταλλαγή στοιχείου διαμέρισης με δεξί δείκτη Χαροκόπειο Πανεπιστήμιο 26/70

167 Παράδειγμα Διαμέρισης Τέλος διαδικασίας διαμέρισης Χαροκόπειο Πανεπιστήμιο 26/70

168 Επιδόσεις Διαμέρισης Συγκρίνουμε το κάθε κλειδί ένα σταθερό αριθμό φορών. Για να διαμερίσουμε ένα πίνακα με n κλειδιά θέλουμε χρόνο O(n). Χαροκόπειο Πανεπιστήμιο 27/70

169 Η καλή περίπτωση p n κλειδιά επίπεδο 0 p p n 2 κλειδιά n 2 κλειδιά επίπεδο 1 Σκοπός της επιλογής του στοιχείου διαμέρισης είναι να πετύχουμε ένα κλειδί το οποίο να μοιράζει τα υπόλοιπα στοιχεία στα δύο. Χαροκόπειο Πανεπιστήμιο 28/70

170 Η καλή περίπτωση p n κλειδιά επίπεδο 0 p p n 2 κλειδιά n 2 κλειδιά επίπεδο 1 Πόσα επίπεδα αναδρομής έχουμε εάν είμαστε πάντα τυχεροί; Χαροκόπειο Πανεπιστήμιο 28/70

171 Η καλή περίπτωση p n κλειδιά επίπεδο 0 p p n 2 κλειδιά n 2 κλειδιά επίπεδο 1 Όσες φορές μπορούμε να μοιράσουμε το n στα δύο δηλαδή O(log n). Χαροκόπειο Πανεπιστήμιο 28/70

172 Η καλή περίπτωση p n κλειδιά επίπεδο 0 p p n 2 κλειδιά n 2 κλειδιά επίπεδο 1 Το μοναδικό κόστος που έχουμε είναι η διαμέριση, το οποίο έχει γραμμικό κόστος. Στο επίπεδο i της αναδρομής έχουμε κόστος διαμέρισης 2 i υποπροβλημάτων το οποίο το καθένα χρειάζεται O( n 2 i ) χρόνο. Χαροκόπειο Πανεπιστήμιο 28/70

173 Η καλή περίπτωση p n κλειδιά επίπεδο 0 p p n 2 κλειδιά n 2 κλειδιά επίπεδο 1 Σύνολο n + 2 n n i n 2 i +... n log n O(n log n) Χαροκόπειο Πανεπιστήμιο 28/70

174 Η χειρότερη περίπτωση p n 1 κλειδιά επίπεδο 0 p n 2 κλειδιά επίπεδο 1 επίπεδο n Εάν είμαστε πραγματικά άτυχοι μπορούμε να διαλέγουμε για κλειδί διαμέρισης πάντα το μικρότερο κλειδί. Χαροκόπειο Πανεπιστήμιο 29/70

175 Η χειρότερη περίπτωση p n 1 κλειδιά επίπεδο 0 p n 2 κλειδιά επίπεδο 1 επίπεδο n Τότε ο αλγόριθμος θα τρέξει αναδρομικά μόνο στο ένα υποπρόβλημα και θα έχουμε n επίπεδα αναδρομής Χαροκόπειο Πανεπιστήμιο 29/70

176 Η χειρότερη περίπτωση p n 1 κλειδιά επίπεδο 0 p n 2 κλειδιά επίπεδο 1 επίπεδο n Το μοναδικό κόστος που έχουμε είναι η διαμέριση, το οποίο έχει γραμμικό κόστος. Στο επίπεδο i της αναδρομής έχουμε κόστος διαμέρισης 1 υποπροβλήματος το οποίο έχει μέγεθος n i. Χαροκόπειο Πανεπιστήμιο 29/70

177 Η χειρότερη περίπτωση p n 1 κλειδιά επίπεδο 0 p n 2 κλειδιά επίπεδο 1 επίπεδο n Σύνολο n + (n 1) + (n 2) = O(n 2 ) Χαροκόπειο Πανεπιστήμιο 29/70

178 Μέση Περίπτωση Μπορούμε να διαλέγουμε το στοιχείο διαμέρισης στην τύχη, ώστε να προσπαθήσουμε να ελαχιστοποιήσουμε την πιθανότητα να πετυχαίνουμε συνέχεια το μικρότερο κλειδί. Έστω ο αλγόριθμος quicksort όπου επιλέγει το στοιχείο διαμέρισης στην τύχη, δηλαδή κάθε στοιχείο μπορεί να είναι στοιχείο διαμέρισης με ίση πιθανότητα. Χαροκόπειο Πανεπιστήμιο 30/70

179 Μέση Περίπτωση Θεώρημα Ο αναμενόμενος αριθμός συγκρίσεων τις οποίες πραγματοποιεί ο αλγόριθμος quicksort είναι 2n ln n 1.39n log n. Χαροκόπειο Πανεπιστήμιο 31/70

180 Μέση Περίπτωση Θεώρημα Ο αναμενόμενος αριθμός συγκρίσεων τις οποίες πραγματοποιεί ο αλγόριθμος quicksort είναι 2n ln n 1.39n log n. Έστω ότι η s = e 1, e 2,..., e i,..., e j,..., e n συμβολίζει τα στοιχεία της εισόδου σε ταξινομημένη σειρά. Χαροκόπειο Πανεπιστήμιο 31/70

181 Μέση Περίπτωση Θεώρημα Ο αναμενόμενος αριθμός συγκρίσεων τις οποίες πραγματοποιεί ο αλγόριθμος quicksort είναι 2n ln n 1.39n log n. Έστω ότι η s = e 1, e 2,..., e i,..., e j,..., e n συμβολίζει τα στοιχεία της εισόδου σε ταξινομημένη σειρά. Τα στοιχεία e i και e j συγκρίνονται το πολύ μία φορά, και μόνο εαν ένα από τα δύο επιλεγεί ως στοιχείο διαμέρισης. Χαροκόπειο Πανεπιστήμιο 31/70

182 Μέση Περίπτωση Θεώρημα Ο αναμενόμενος αριθμός συγκρίσεων τις οποίες πραγματοποιεί ο αλγόριθμος quicksort είναι 2n ln n 1.39n log n. Έστω ότι η s = e 1, e 2,..., e i,..., e j,..., e n συμβολίζει τα στοιχεία της εισόδου σε ταξινομημένη σειρά. Τα στοιχεία e i και e j συγκρίνονται το πολύ μία φορά, και μόνο εαν ένα από τα δύο επιλεγεί ως στοιχείο διαμέρισης. Έστω η τυχαία μεταβλητή X ij, i < j όπου X ij = 1 αν συγκρίνονται τα e i και e j, και X ij = 0 διαφορετικά. Χαροκόπειο Πανεπιστήμιο 31/70

183 Μέση Περίπτωση Θεώρημα Ο αναμενόμενος αριθμός συγκρίσεων τις οποίες πραγματοποιεί ο αλγόριθμος quicksort είναι 2n ln n 1.39n log n. Έστω ότι η s = e 1, e 2,..., e i,..., e j,..., e n συμβολίζει τα στοιχεία της εισόδου σε ταξινομημένη σειρά. Τα στοιχεία e i και e j συγκρίνονται το πολύ μία φορά, και μόνο εαν ένα από τα δύο επιλεγεί ως στοιχείο διαμέρισης. Έστω η τυχαία μεταβλητή X ij, i < j όπου X ij = 1 αν συγκρίνονται τα e i και e j, και X ij = 0 διαφορετικά. Ο μέσος αριθμός συγκρίσεων είναι n n n C(n) = E = i=1 j=i+1 X ij i=1 j=i+1 n E[X ij ] = n i=1 j=i+1 n prob(x ij = 1). Χαροκόπειο Πανεπιστήμιο 31/70

184 Μέση Περίπτωση Θεώρημα Ο αναμενόμενος αριθμός συγκρίσεων τις οποίες πραγματοποιεί ο αλγόριθμος quicksort είναι 2n ln n 1.39n log n. Έστω ότι η s = e 1, e 2,..., e i,..., e j,..., e n συμβολίζει τα στοιχεία της εισόδου σε ταξινομημένη σειρά. Τα στοιχεία e i και e j συγκρίνονται το πολύ μία φορά, και μόνο εαν ένα από τα δύο επιλεγεί ως στοιχείο διαμέρισης. Έστω η τυχαία μεταβλητή X ij, i < j όπου X ij = 1 αν συγκρίνονται τα e i και e j, και X ij = 0 διαφορετικά. Ο μέσος αριθμός συγκρίσεων είναι n n n C(n) = E = i=1 j=i+1 X ij i=1 j=i+1 n E[X ij ] = n i=1 j=i+1 n prob(x ij = 1). Για περαιτέρω απλοποίηση πρέπει να υπολογίσουμε την πιθανότητα. Χαροκόπειο Πανεπιστήμιο 31/70

185 Μέση Περίπτωση Λήμμα Για οποιοδήποτε i < j, prob(x ij = 1) = 2 j i+1. Απόδειξη Θεωρήστε το σύνολο των j i + 1 στοιχείων M = {e i,..., e j }. Χαροκόπειο Πανεπιστήμιο 32/70

186 Μέση Περίπτωση Λήμμα Για οποιοδήποτε i < j, prob(x ij = 1) = 2 j i+1. Απόδειξη Θεωρήστε το σύνολο των j i + 1 στοιχείων M = {e i,..., e j }. Όσο δεν επιλέγεται κάποιο στοιχείο διαμέρισης από το M, τα e i και e j δεν συγκρίνονται, αλλά όλα τα στοιχεία του M μεταβιβάζονται στις ίδιες αναδρομικές κλήσεις. Χαροκόπειο Πανεπιστήμιο 32/70

187 Μέση Περίπτωση Λήμμα Για οποιοδήποτε i < j, prob(x ij = 1) = 2 j i+1. Απόδειξη Θεωρήστε το σύνολο των j i + 1 στοιχείων M = {e i,..., e j }. Όσο δεν επιλέγεται κάποιο στοιχείο διαμέρισης από το M, τα e i και e j δεν συγκρίνονται, αλλά όλα τα στοιχεία του M μεταβιβάζονται στις ίδιες αναδρομικές κλήσεις. Τελικά, θα επιλεγεί ένα στοιχείο διαμέρισης από το M. Κάθε στοιχείο του M έχει την ίδια πιθανότητα 1 = 1. M j i+1 Χαροκόπειο Πανεπιστήμιο 32/70

188 Μέση Περίπτωση Λήμμα Για οποιοδήποτε i < j, prob(x ij = 1) = 2 j i+1. Απόδειξη Θεωρήστε το σύνολο των j i + 1 στοιχείων M = {e i,..., e j }. Όσο δεν επιλέγεται κάποιο στοιχείο διαμέρισης από το M, τα e i και e j δεν συγκρίνονται, αλλά όλα τα στοιχεία του M μεταβιβάζονται στις ίδιες αναδρομικές κλήσεις. Τελικά, θα επιλεγεί ένα στοιχείο διαμέρισης από το M. Κάθε στοιχείο του M έχει την ίδια πιθανότητα 1 = 1. M j i+1 Αν επιλεγεί το e i ή το e j έχουμε X ij = 1. Η πιθανότητα για αυτό το συμβάν είναι 2 j i+1. Διαφορετικά, τα e i και e j μεταβιβάζονται σε διαφορετικές αναδρομικές κλήσεις, οπότε δεν θα συγκριθούν ποτέ. Χαροκόπειο Πανεπιστήμιο 32/70

189 Μέση Περίπτωση Θεώρημα Ο αναμενόμενος αριθμός συγκρίσεων τις οποίες πραγματοποιεί ο αλγόριθμος quicksort είναι 2n ln n 1.39n log n. Ο μέσος αριθμός συγκρίσεων είναι C(n) = n i=1 j=i+1 n n prob(x ij = 1) = n i=1 k=2 2 n k = 2n k=2 n n i=1 j=i+1 2 j i + 1 = n i=1 n i+1 k=2 1 = 2n(Hn 1) 2n(1 + ln n 1) = 2n ln n k Οι τελευταίες ισότητες ισχύουν αφού ισχύει για του αρμονικούς αριθμούς: ln n H n = n i=1 1 i ln n k Χαροκόπειο Πανεπιστήμιο 33/70

190 Χρόνος εκτέλεσης Quicksort στην χειρότερη περίπτωση O(n 2 ) στην καλύτερη περίπτωση O(n log n) μέση περίπτωση O(n log n) Χαροκόπειο Πανεπιστήμιο 34/70

191 Συγχώνευση και Ταξινόμηση Συγχώνευσης Merging + Mergesort Συγχώνευση είναι η διαδικασία συγχώνευσης δύο ταξινομημένων αρχείων σε ένα ταξινομημένο αρχείο. ταξινοµηµένος πίνακας a α) επιλογή µικρότερου ϐ) αντιγραφή σε άλλο πίνακα c γ) µετακίνηση δείκτη ταξινοµηµένος πίνακας b Γίνεται σε γραμμικό χρόνο. Χαροκόπειο Πανεπιστήμιο 35/70

192 Ταξινόμηση Συγχώνευσης 1 void mergesort ( int a [ ], int l, int r ) 2 { 3 if ( r <= l ) 4 return ; 5 6 int m = ( r+l ) / 2 ; 7 8 mergesort ( a, l, m ) ; 9 mergesort ( a, m+1, r ) ; 10 merge ( a, l, m, r ) ; 11 } Η συνάρτηση merge χρησιμοποιεί έναν επιπλέον πίνακα μεγέθους n. Χαροκόπειο Πανεπιστήμιο 36/70

193 Επιδόσεις Ταξινόμησης Συγχώνευσης Έστω T(n) o χρόνος ταξινόμησης n αριθμών. Τότε: T(n) = { c εάν n = 1, 2 T(n/2) + c n εάνn > 1. όπου c μια σταθερά και c n o χρόνος που χρειάζεται για να κάνουμε merge δύο πίνακες με n στοιχεία (ή λιγότερα) ο καθένας. Χαροκόπειο Πανεπιστήμιο 37/70

194 Αναδρομή c n c n c n/2 c n/2 c n log n c n/4 c n/4 c n/4 c n/4 c n c c c c c c c n c n Χαροκόπειο Πανεπιστήμιο 38/70

195 Βασικά Χαρακτηριστικά Ταξινόμησης Συγχώνευσης πάντα O(n log n), και στην καλύτερη και στην χειρότερη περίπτωση για πίνακες θέλει επιπλέον χώρο O(n) ιδανικός για λίστες ευσταθής Χαροκόπειο Πανεπιστήμιο 39/70

196 Μοντέλο δεντρικών αποφάσεων Το μοντέλο έστω μια ακολουθία εισόδου a 1, a 2,..., a n άντληση πληροφορίας μπορεί να γίνει μόνο με συγκρίσεις θεωρούμε πως όλα τα στοιχεία εισόδου είναι διαφορετικά οπότε οι μόνες συγκρίσεις που χρειάζονται είναι της μορφής a i a j. Χαροκόπειο Πανεπιστήμιο 40/70

197 Δέντρα Αποφάσεων Decision Trees Πλήρες δυαδικό δέντρο που αντιπροσωπεύει τις συγκρίσεις που πραγματοποιούνται μεταξύ στοιχείων από έναν συγκεκριμένο αλγόριθμο ταξινόμησης. a1 a2 ΝΑΙ ΟΧΙ a2 a3 a1 a3 ΝΑΙ ΟΧΙ ΝΑΙ ΟΧΙ a1, a2, a3 a1 a3 a2, a1, a3 a2 a3 ΝΑΙ ΟΧΙ ΝΑΙ ΟΧΙ a1, a3, a2 a3, a1, a2 a2, a3, a1 a3, a2, a1 Ένας ορθός αλγόριθμος πρέπει να μπορεί να παράγει και τις n! μεταθέσεις. Το μακρύτερο μονοπάτι προς κάποιο φύλλο είναι η χειρότερη περίπτωση αυτού του αλγορίθμου. Χαροκόπειο Πανεπιστήμιο 41/70

198 Δέντρα Αποφάσεων Decision Trees Θεώρημα Έστω h το ύψος ενός δέντρου αποφάσεων για είσοδο μεγέθους n. Τότε h Ω(n log n). Χαροκόπειο Πανεπιστήμιο 42/70

199 Δέντρα Αποφάσεων Decision Trees Θεώρημα Έστω h το ύψος ενός δέντρου αποφάσεων για είσοδο μεγέθους n. Τότε h Ω(n log n). Απόδειξη Ένα πλήρες δυαδικό δέντρο ύψους h έχει το πολύ 2 h φύλλα. Χαροκόπειο Πανεπιστήμιο 42/70

200 Δέντρα Αποφάσεων Decision Trees Θεώρημα Έστω h το ύψος ενός δέντρου αποφάσεων για είσοδο μεγέθους n. Τότε h Ω(n log n). Απόδειξη Ένα πλήρες δυαδικό δέντρο ύψους h έχει το πολύ 2 h φύλλα. Ένα δέντρο αποφάσεων έχει n! φύλλα. Χαροκόπειο Πανεπιστήμιο 42/70

201 Δέντρα Αποφάσεων Decision Trees Θεώρημα Έστω h το ύψος ενός δέντρου αποφάσεων για είσοδο μεγέθους n. Τότε h Ω(n log n). Απόδειξη Ένα πλήρες δυαδικό δέντρο ύψους h έχει το πολύ 2 h φύλλα. Ένα δέντρο αποφάσεων έχει n! φύλλα. Άρα n! 2 h. Χαροκόπειο Πανεπιστήμιο 42/70

202 Δέντρα Αποφάσεων Decision Trees Θεώρημα Έστω h το ύψος ενός δέντρου αποφάσεων για είσοδο μεγέθους n. Τότε h Ω(n log n). Απόδειξη Ένα πλήρες δυαδικό δέντρο ύψους h έχει το πολύ 2 h φύλλα. Ένα δέντρο αποφάσεων έχει n! φύλλα. Άρα n! 2 h. Λογαριθμίζοντας και αφού η συνάρτηση log 2 είναι μονότονα αύξουσα έχουμε πως: h log 2 (n!). Χαροκόπειο Πανεπιστήμιο 42/70

203 Δέντρα Αποφάσεων Decision Trees Θεώρημα Έστω h το ύψος ενός δέντρου αποφάσεων για είσοδο μεγέθους n. Τότε h Ω(n log n). Απόδειξη Ένα πλήρες δυαδικό δέντρο ύψους h έχει το πολύ 2 h φύλλα. Ένα δέντρο αποφάσεων έχει n! φύλλα. Άρα n! 2 h. Λογαριθμίζοντας και αφού η συνάρτηση log 2 είναι μονότονα αύξουσα έχουμε πως: h log 2 (n!). Χρησιμοποιώντας την προσέγγιση του Stirling, n! 2πn( n e )n προκύπτει πως log(n!) = Ω(n log n). Χαροκόπειο Πανεπιστήμιο 42/70

204 Κάτω Φράγμα Συγκρίσεων Ταξινόμησης Οποιοσδήποτε αλγόριθμος χρησιμοποιεί μόνο συγκρίσεις και αντιμεταθέσεις για την ταξινόμηση n αριθμών χρειάζεται Ω(n log n) συγκρίσεις. Χαροκόπειο Πανεπιστήμιο 43/70

205 Επιλογή Selection ή Order Statistics Ένα πρόβλημα που προκύπτει πολλές φορές είναι η επιλογή (εύρεση) του k-οστού στοιχείου ενός συνόλου αριθμών. Έστω για παράδειγμα ένα σύνολο αριθμών: 5, 7, 1, 2, 6, 9, 32, 100, 5 Θέλουμε να μπορούμε να απαντήσουμε ερώτηματα όπως βρείτε το 6ο στοιχείο εαν το σύνολο ήταν ταξινομημένο. Είναι προφανές πως μπορούμε πρώτα να ταξινομήσουμε και μετά να βρούμε το 6ο στοιχείο. Άρα το πρόβλημα λύνεται σε χρόνο O(n log n). Το 6ο στοιχείο του παραπάνω συνόλου είναι το 7 αφού η είσοδος ταξινομημένη είναι: 1, 2, 5, 5, 6, 7, 9, 32, 100. Χαροκόπειο Πανεπιστήμιο 44/70

206 Επιλογή Μια πρώτη προσπάθεια Μπορούμε να λύσουμε το πρόβλημα με την ιδέα του διαίρει και βασίλευε όπως ακριβώς κάναμε στον αλγόριθμο quicksort. Για αυτό τον λόγο θα ονομάσουμε τον καινούριο αλγόριθμο quickselect. Χαροκόπειο Πανεπιστήμιο 45/70

207 Επιλογή Quickselect Έστω πως έχουμε ως είσοδο ένα πίνακα a [1... n] με n στοιχεία και έναν αριθμό 1 k n. Θέλουμε να επιστρέψουμε το στοιχείο του πίνακα a που είναι το k-οστό μικρότερο. 1 διάλεξε ένα στοιχείο διαμέρισης p 2 κάνε διαμέριση του πίνακα a [1... n] με βάση το p και έστω πως το p καταλήγει στην θέση i 3 εαν k = i τότε βρήκαμε το στοιχείο μας, και το επιστρέφουμε 4 αλλιώς εαν k < i τρέξε αναδρομικά με πίνακα a [1.. i 1] ψάχνοντας το k στοιχείο εαν k > i τρέξε αναδρομικά με πίνακα a[i+1..n] ψάχνοντας το k i στοιχείο Χαροκόπειο Πανεπιστήμιο 46/70

208 Αναδρομή του Quickselect p n κλειδιά επίπεδο 0 p n 2 κλειδιά επίπεδο 1 Ο αλγόριθμος δεν κάνει αναδρομικές κλήσεις και προς τις δύο πλευρές όπως ο quicksort αλλά μόνο προς την μια πλευρά. Χαροκόπειο Πανεπιστήμιο 47/70

209 Αναδρομή του Quickselect Η απόδοση και αυτού του αλγορίθμου εξαρτάται από την επιλογή του κλειδιού διαμέρισης. Στην χειρότερη περίπτωση μπορεί να είναι O(n 2 ), όπως και του quicksort. Εαν το κλειδί διαμέρισης επιλέγεται κάθε φορά στην τύχη, μπορούμε να δείξουμε με προσεκτική ανάλυση πως ο αλγόριθμος έχει αναμενόμενο χρόνο εκτέλεσης O(n). Χαροκόπειο Πανεπιστήμιο 48/70

210 Γραμμικός Αλγόριθμος Θα δείξουμε τώρα έναν αλγόριθμο που τρέχει σε γραμμικό χρόνο O(n) στην χειρότερη περίπτωση. ο αλγόριθμος διαλέγει ένα κλειδί διαμέρισης που μοιράζει τον πίνακα σχετικά ισομερώς κατά τα άλλα είναι ίδιος με τον quickselect Η δυσκολία είναι στην σχεδίαση ενός αλγορίθμου επιλογής του στοιχείου διαμέρισης (χωρίς τυχαιότητα). Χαροκόπειο Πανεπιστήμιο 49/70

211 Έξυπνη Επιλογή Στοιχείου Διαμέρισης Επιλογή του k-οστού ενός πίνακα a [1... n] 1 Μοίρασε τα n κλειδιά εισόδου σε n/5 ομάδες των 5 κλειδιών και το πολύ μια ομάδα με τα υπόλοιπα n%5 κλειδιά. Χαροκόπειο Πανεπιστήμιο 50/70

212 Έξυπνη Επιλογή Στοιχείου Διαμέρισης Επιλογή του k-οστού ενός πίνακα a [1... n] 1 Μοίρασε τα n κλειδιά εισόδου σε n/5 ομάδες των 5 κλειδιών και το πολύ μια ομάδα με τα υπόλοιπα n%5 κλειδιά. 2 Βρες τον μέσο κάθε μιας από τις n/5 ομάδες. Επειδή οι ομάδες έχουν το πολύ 5 κλειδιά μπορούμε να χρησιμοποιήσουμε για παράδειγμα insertion sort. Εαν μια ομάδα έχει ζυγό αριθμό κλειδιών, πάρε τον μεγαλύτερο από τους δύο μέσους. Χαροκόπειο Πανεπιστήμιο 50/70

213 Έξυπνη Επιλογή Στοιχείου Διαμέρισης Επιλογή του k-οστού ενός πίνακα a [1... n] 1 Μοίρασε τα n κλειδιά εισόδου σε n/5 ομάδες των 5 κλειδιών και το πολύ μια ομάδα με τα υπόλοιπα n%5 κλειδιά. 2 Βρες τον μέσο κάθε μιας από τις n/5 ομάδες. Επειδή οι ομάδες έχουν το πολύ 5 κλειδιά μπορούμε να χρησιμοποιήσουμε για παράδειγμα insertion sort. Εαν μια ομάδα έχει ζυγό αριθμό κλειδιών, πάρε τον μεγαλύτερο από τους δύο μέσους. 3 Βρες αναδρομικά τον μέσο p των n/5 μέσων Χαροκόπειο Πανεπιστήμιο 50/70

214 Έξυπνη Επιλογή Στοιχείου Διαμέρισης Επιλογή του k-οστού ενός πίνακα a [1... n] 1 Μοίρασε τα n κλειδιά εισόδου σε n/5 ομάδες των 5 κλειδιών και το πολύ μια ομάδα με τα υπόλοιπα n%5 κλειδιά. 2 Βρες τον μέσο κάθε μιας από τις n/5 ομάδες. Επειδή οι ομάδες έχουν το πολύ 5 κλειδιά μπορούμε να χρησιμοποιήσουμε για παράδειγμα insertion sort. Εαν μια ομάδα έχει ζυγό αριθμό κλειδιών, πάρε τον μεγαλύτερο από τους δύο μέσους. 3 Βρες αναδρομικά τον μέσο p των n/5 μέσων 4 Κάνε διαμέριση γύρω από τον μέσο-των-μέσων p Χαροκόπειο Πανεπιστήμιο 50/70

215 Έξυπνη Επιλογή Στοιχείου Διαμέρισης Επιλογή του k-οστού ενός πίνακα a [1... n] 1 Μοίρασε τα n κλειδιά εισόδου σε n/5 ομάδες των 5 κλειδιών και το πολύ μια ομάδα με τα υπόλοιπα n%5 κλειδιά. 2 Βρες τον μέσο κάθε μιας από τις n/5 ομάδες. Επειδή οι ομάδες έχουν το πολύ 5 κλειδιά μπορούμε να χρησιμοποιήσουμε για παράδειγμα insertion sort. Εαν μια ομάδα έχει ζυγό αριθμό κλειδιών, πάρε τον μεγαλύτερο από τους δύο μέσους. 3 Βρες αναδρομικά τον μέσο p των n/5 μέσων 4 Κάνε διαμέριση γύρω από τον μέσο-των-μέσων p 5 Ανάλογα με την θέση του p σε σχέση με το k, επέστρεψε το p ή τρέξε αναδρομικά τον αλγόριθμο για ένα από τα δύο υποπροβλήματα όπως ακριβώς και στον quickselect. Χαροκόπειο Πανεπιστήμιο 50/70

216 Ιδιότητες Μέσου-των-Μέσων Χαροκόπειο Πανεπιστήμιο 51/70

217 Ιδιότητες Μέσου-των-Μέσων Χαροκόπειο Πανεπιστήμιο 51/70

218 Ιδιότητες Μέσου-των-Μέσων Θεώρημα Ο αριθμός των κλειδιών που είναι μεγαλύτερα από τον μέσο-των-μέσων p είναι τουλάχιστον 3n Χαροκόπειο Πανεπιστήμιο 52/70

219 Ιδιότητες Μέσου-των-Μέσων Θεώρημα Ο αριθμός των κλειδιών που είναι μεγαλύτερα από τον μέσο-των-μέσων p είναι τουλάχιστον 3n Απόδειξη Τουλάχιστον μισοί από τους μέσους των n/5 ομάδων είναι μεγαλύτεροι ή ίσοι του p. Χαροκόπειο Πανεπιστήμιο 52/70

220 Ιδιότητες Μέσου-των-Μέσων Θεώρημα Ο αριθμός των κλειδιών που είναι μεγαλύτερα από τον μέσο-των-μέσων p είναι τουλάχιστον 3n Απόδειξη Τουλάχιστον μισοί από τους μέσους των n/5 ομάδων είναι μεγαλύτεροι ή ίσοι του p. Άρα τουλάχιστον οι μισές από τις n/5 ομάδες παρέχουν 3 κλειδιά μεγαλύτερα του p, εκτός από μια ομάδα που έχει λιγότερα από 5 κλειδιά (εάν το 5 δεν διαιρεί το n) και μία ομάδα ακόμη που περιέχει το p. Χαροκόπειο Πανεπιστήμιο 52/70

221 Ιδιότητες Μέσου-των-Μέσων Θεώρημα Ο αριθμός των κλειδιών που είναι μεγαλύτερα από τον μέσο-των-μέσων p είναι τουλάχιστον 3n Απόδειξη Τουλάχιστον μισοί από τους μέσους των n/5 ομάδων είναι μεγαλύτεροι ή ίσοι του p. Άρα τουλάχιστον οι μισές από τις n/5 ομάδες παρέχουν 3 κλειδιά μεγαλύτερα του p, εκτός από μια ομάδα που έχει λιγότερα από 5 κλειδιά (εάν το 5 δεν διαιρεί το n) και μία ομάδα ακόμη που περιέχει το p. Μη μετρώντας αυτές τις δύο ομάδες προκύπτει πως τα κλειδιά που μας ενδιαφέρουν είναι τουλάχιστον 3( 1 n 3n 2) Χαροκόπειο Πανεπιστήμιο 52/70

222 Ιδιότητες Μέσου-των-Μέσων Παρόμοια μπορούμε να δείξουμε πως τα κλειδιά που είναι μικρότερα του p είναι τουλάχιστον 3n Μπορούμε λοιπόν να πούμε πως η αναδρομή που κάνουμε στον αλγόριθμο θα έχει ένα υποπρόβλημα με το πολύ κλειδιά. n ( 3n 7n 6) = Χαροκόπειο Πανεπιστήμιο 53/70

223 Ανάλυση Χρόνου Έστω T(n) ο χειρότερος χρόνος του αλγορίθμου μας σε ένα πίνακα μεγέθους n. 1 η δημιουργία των n ομάδων πέρνει O(n) χρόνο. 5 Χαροκόπειο Πανεπιστήμιο 54/70

224 Ανάλυση Χρόνου Έστω T(n) ο χειρότερος χρόνος του αλγορίθμου μας σε ένα πίνακα μεγέθους n. 1 η δημιουργία των n ομάδων πέρνει O(n) χρόνο. 5 2 για να βρούμε τους μέσους των n ομάδων χρειαζόμαστε O(n) χρόνο 5 (καλούμε την insertion sort O(n) φορές σε είσοδο μεγέθους O(1). Χαροκόπειο Πανεπιστήμιο 54/70

225 Ανάλυση Χρόνου Έστω T(n) ο χειρότερος χρόνος του αλγορίθμου μας σε ένα πίνακα μεγέθους n. 1 η δημιουργία των n ομάδων πέρνει O(n) χρόνο. 5 2 για να βρούμε τους μέσους των n ομάδων χρειαζόμαστε O(n) χρόνο 5 (καλούμε την insertion sort O(n) φορές σε είσοδο μεγέθους O(1). 3 για να βρούμε τον μέσο-των-μέσων καλούμε την συνάρτηση αναδρομικά και άρα χρειάζεται χρόνο T( n 5 ). Χαροκόπειο Πανεπιστήμιο 54/70

226 Ανάλυση Χρόνου Έστω T(n) ο χειρότερος χρόνος του αλγορίθμου μας σε ένα πίνακα μεγέθους n. 1 η δημιουργία των n ομάδων πέρνει O(n) χρόνο. 5 2 για να βρούμε τους μέσους των n ομάδων χρειαζόμαστε O(n) χρόνο 5 (καλούμε την insertion sort O(n) φορές σε είσοδο μεγέθους O(1). 3 για να βρούμε τον μέσο-των-μέσων καλούμε την συνάρτηση αναδρομικά και άρα χρειάζεται χρόνο T( n 5 ). 4 η διαμέριση του πίνακα σε σχέση με τον μέσο-των-μέσων θέλει χρόνο O(n). Χαροκόπειο Πανεπιστήμιο 54/70

227 Ανάλυση Χρόνου Έστω T(n) ο χειρότερος χρόνος του αλγορίθμου μας σε ένα πίνακα μεγέθους n. 1 η δημιουργία των n ομάδων πέρνει O(n) χρόνο. 5 2 για να βρούμε τους μέσους των n ομάδων χρειαζόμαστε O(n) χρόνο 5 (καλούμε την insertion sort O(n) φορές σε είσοδο μεγέθους O(1). 3 για να βρούμε τον μέσο-των-μέσων καλούμε την συνάρτηση αναδρομικά και άρα χρειάζεται χρόνο T( n 5 ). 4 η διαμέριση του πίνακα σε σχέση με τον μέσο-των-μέσων θέλει χρόνο O(n). 5 η αναδρομική λύση σε ένα μικρότερο υποπρόβλημα πέρνει το πολύ χρόνο T( 7n + 6) υποθέτοντας πως η συνάρτηση T είναι αύξουσα. 10 Χαροκόπειο Πανεπιστήμιο 54/70

228 Ανάλυση Χρόνου Έστω T(n) ο χειρότερος χρόνος του αλγορίθμου μας σε ένα πίνακα μεγέθους n. Με βάση τα προηγούμενα: T(n) T( n/5 ) + T(7n/10 + 6) + c n Η παραπάνω αναδρομή λύνει σε T(n) c n για κάποια σταθερά c. Χαροκόπειο Πανεπιστήμιο 55/70

229 Ειδικές Ιδιότητες Κλειδιών Ως τώρα είδαμε αλγορίθμους ταξινόμησης που έκαναν συγκρίσεις και αντιμεταθέσεις. Τώρα θα δούμε τι γίνεται εαν χρησιμοποιήσουμε περισσότερη πληροφορία για την αναπαράσταση των κλειδιών, π.χ την γνώση πως οι αριθμοί είναι όλοι ακέραιοι, κ.τ.λ. Χαροκόπειο Πανεπιστήμιο 56/70

230 Ταξινόμηση Δοχείων Bucket Sort ή Distribution Sort Η ταξινόμηση μέτρησης θεωρεί πως η είσοδος είναι ακέραιοι στο διάστημα μεταξύ 0 και k, όπου k ακέραιος. Για k = O(n) η ταξινόμηση εκτελείται σε χρόνο O(n). Βασική Ιδέα Πρέπει να προσδιορίσουμε για κάθε στοιχείο x της εισόδου, πόσα στοιχεία της εισόδου είναι μικρότερα από το x. Έπειτα μπορούμε να βρούμε απευθείας την θέση του x στην έξοδο. Χαροκόπειο Πανεπιστήμιο 57/70

231 Ταξινόμηση Δοχείων Παράδειγμα Έστω ο παρακάτω πίνακας που θέλουμε να ταξινομήσουμε Φτιάχνουμε ένα βοηθητικό πίνακα μεγέθους k, όπου k είναι ο μεγαλύτερος ακέραιος που υπάρχει στην είσοδο μας. Ο πίνακας αυτός θα περιέχει στην θέση i τον αριθμό των φορών που ο αριθμός i υπάρχει στην είσοδο μας Μπορούμε να υπολογίσουμε αυτές τις τιμές με μια διάσχιση του αρχικού μας πίνακα. Χαροκόπειο Πανεπιστήμιο 58/70

232 Ταξινόμηση Δοχείων Παράδειγμα Με μια ακόμη διάσχιση του καινούριου πίνακα μπορούμε πλέον να ταξινομήσουμε τους αριθμούς μας. Ο αλγόριθμος είναι πολύ απλός. Για κάθε i από 0 έως k τύπωσε στην έξοδο τον αριθμό i όσες φορές λέει η θέση i του πίνακα Χαροκόπειο Πανεπιστήμιο 59/70

233 Ταξινόμηση Δοχείων Παράδειγμα Χαροκόπειο Πανεπιστήμιο 60/70

234 Ταξινόμηση Βάσης Radix Sort Μέθοδος ταξινόμησης που κοιτάει τα κλειδιά ανά τμήματα: δυαδικοί αριθμοί είναι ακολουθίες από bit, αλφαριθμητικά είναι ακολουθίες χαρακτήρων, δεκαδικοί αριθμοί είναι ακολουθίες ψηφίων. Η μέθοδος αυτή θεωρεί πως τα κλειδιά είναι αριθμοί που αναπαρίστανται σε ένα σύστημα αρίθμησης με βάση R, για διάφορες τιμές του R. Χαροκόπειο Πανεπιστήμιο 61/70

235 Ταξινόμηση Βάσης (lsd) Ας υποθέσουμε πως R = 10, άρα βλέπουμε την είσοδο ως δεκαδικούς αριθμούς: 34, 12, 42, 32, 44, 41, 34, 11, 32 και 23. Κάθε αριθμός έχει 2 ψηφία. Η μέθοδος που θα παρουσιάσουμε ταξινομεί τους αριθμούς με βάση τα ψηφία τους. πρώτα ταξινομεί τους αριθμούς με βάση το 1ο ψηφίο από δεξιά (least significant digit), και έπειτα ταξινομεί τους αριθμούς με βάση το 2ο ψηφίο Για να λειτουργήσει σωστά πρέπει η μέθοδος ταξινόμησης που θα χρησιμοποιήσουμε για κάθε ψηφίο να είναι ευσταθής. Θα δούμε π.χ πως δουλεύει με την ταξινόμηση δοχείων. Χαροκόπειο Πανεπιστήμιο 62/70

236 Ταξινόμηση Βάσης (lsd) Με χρήση δοχείων Ας υποθέσουμε πως R = 10, άρα βλέπουμε την είσοδο ως δεκαδικούς αριθμούς: 34, 12, 42, 32, 44, 41, 34, 11, 32 και 23. Κάθε αριθμός έχει 2 ψηφία. Επειδή R = 10 έχουμε 10 δοχεία που αντιστοιχούν στα 0 έως και 9. Για κάθε ένα από τα ψηφία, θα πετάξουμε τους αριθμούς με την σειρά στα δοχεία και θα τους βγάλουμε με την σειρά των δοχείων Χαροκόπειο Πανεπιστήμιο 63/70

237 Ταξινόμηση Βάσης (lsd) Με χρήση δοχείων Ας υποθέσουμε πως R = 10, άρα βλέπουμε την είσοδο ως δεκαδικούς αριθμούς: 34, 12, 42, 32, 44, 41, 34, 11, 32 και 23. Κάθε αριθμός έχει 2 ψηφία. Επειδή R = 10 έχουμε 10 δοχεία που αντιστοιχούν στα 0 έως και 9. Για κάθε ένα από τα ψηφία, θα πετάξουμε τους αριθμούς με την σειρά στα δοχεία και θα τους βγάλουμε με την σειρά των δοχείων. 34, 12, 42, 32, 44, 41, 34, 11, 32, Χαροκόπειο Πανεπιστήμιο 63/70

238 Ταξινόμηση Βάσης (lsd) Με χρήση δοχείων Ας υποθέσουμε πως R = 10, άρα βλέπουμε την είσοδο ως δεκαδικούς αριθμούς: 34, 12, 42, 32, 44, 41, 34, 11, 32 και 23. Κάθε αριθμός έχει 2 ψηφία. Επειδή R = 10 έχουμε 10 δοχεία που αντιστοιχούν στα 0 έως και 9. Για κάθε ένα από τα ψηφία, θα πετάξουμε τους αριθμούς με την σειρά στα δοχεία και θα τους βγάλουμε με την σειρά των δοχείων. 34, 12, 42, 32, 44, 41, 34, 11, 32, , 11, 12, 42, 32, 32, 23, 34, 44, 34 Χαροκόπειο Πανεπιστήμιο 63/70

239 Ταξινόμηση Βάσης (lsd) Με χρήση δοχείων Ας υποθέσουμε πως R = 10, άρα βλέπουμε την είσοδο ως δεκαδικούς αριθμούς: 34, 12, 42, 32, 44, 41, 34, 11, 32 και 23. Κάθε αριθμός έχει 2 ψηφία. Επειδή R = 10 έχουμε 10 δοχεία που αντιστοιχούν στα 0 έως και 9. Για κάθε ένα από τα ψηφία, θα πετάξουμε τους αριθμούς με την σειρά στα δοχεία και θα τους βγάλουμε με την σειρά των δοχείων. 41, 11, 12, 42, 32, 32, 23, 34, 44, Χαροκόπειο Πανεπιστήμιο 63/70

240 Ταξινόμηση Βάσης (lsd) Με χρήση δοχείων Ας υποθέσουμε πως R = 10, άρα βλέπουμε την είσοδο ως δεκαδικούς αριθμούς: 34, 12, 42, 32, 44, 41, 34, 11, 32 και 23. Κάθε αριθμός έχει 2 ψηφία. Επειδή R = 10 έχουμε 10 δοχεία που αντιστοιχούν στα 0 έως και 9. Για κάθε ένα από τα ψηφία, θα πετάξουμε τους αριθμούς με την σειρά στα δοχεία και θα τους βγάλουμε με την σειρά των δοχείων. 41, 11, 12, 42, 32, 32, 23, 34, 44, , 12, 23, 32, 32, 34, 34, 41, 42, Χαροκόπειο Πανεπιστήμιο 63/70

241 Ταξινόμηση Βάσης (lsd) Παράδειγμα Έστω οι αριθμοί: 701, 132, 120, 720, 121, 035, 001, 699, 792 Χαροκόπειο Πανεπιστήμιο 64/70

242 Ταξινόμηση Βάσης (lsd) Παράδειγμα Έστω οι αριθμοί: 701, 132, 120, 720, 121, 035, 001, 699, 792 Ταξινομώντας πρώτα με το 1ο ψηφίο (από δεξιά): 120, 720, 701, 121, 001, 132, 792, 035, 699 Χαροκόπειο Πανεπιστήμιο 64/70

243 Ταξινόμηση Βάσης (lsd) Παράδειγμα Έστω οι αριθμοί: 701, 132, 120, 720, 121, 035, 001, 699, 792 Ταξινομώντας πρώτα με το 1ο ψηφίο (από δεξιά): 120, 720, 701, 121, 001, 132, 792, 035, 699 Ταξινομώντας με το 2ο ψηφίο (από δεξιά): 701, 001, 120, 720, 121, 132, 035, 792, 699 Χαροκόπειο Πανεπιστήμιο 64/70

244 Ταξινόμηση Βάσης (lsd) Παράδειγμα Έστω οι αριθμοί: 701, 132, 120, 720, 121, 035, 001, 699, 792 Ταξινομώντας πρώτα με το 1ο ψηφίο (από δεξιά): 120, 720, 701, 121, 001, 132, 792, 035, 699 Ταξινομώντας με το 2ο ψηφίο (από δεξιά): 701, 001, 120, 720, 121, 132, 035, 792, 699 Ταξινομώντας με το 3ο ψηφίο (από δεξιά): 001, 035, 120, 121, 132, 699, 701, 720, 792 Χαροκόπειο Πανεπιστήμιο 64/70

245 Ταξινόμηση Βάσης (lsd) Εαν η μέθοδος ταξινόμησης που χρησιμοποιούμε δεν είναι ευσταθής, το αποτέλεσμα δεν είναι πάντα σωστό. π.χ με ευσταθή ταξινόμηση ενώ με μη-ευσταθή ταξινόμηση Χαροκόπειο Πανεπιστήμιο 65/70

246 Ταξινόμηση Βάσης (lsd) Χρόνος Εκτέλεσης Ο χρόνος εκτέλεσης εάν υποθέσουμε βάση R και χρήση του γραμμικού αλγόριθμου ταξινόμησης με δοχεία είναι O(w n) όπου n είναι το μέγεθος της εισόδου που θέλουμε να ταξινομήσουμε και w είναι ο αριθμός των ψηφίων που χρειάζονται τα στοιχεία της εισόδου για να αναπαρασταθούν σε βάση R. Χαροκόπειο Πανεπιστήμιο 66/70

247 Ταξινόμηση Βάσης (lsd) Παράδειγμα Συμβολοσειρών Έστω για παράδειγμα πως θέλουμε να ταξινομήσουμε n συμβολοσειρές (strings) όπου κάθε συμβολοσειρά έχει μήκος το πολύ L, και υποθέσουμε πως οι χαρακτήρες χρησιμοποιούν την κωδικοποίηση Extended-ASCII (1 byte για κάθε χαρακτήρα). Χαροκόπειο Πανεπιστήμιο 67/70

248 Ταξινόμηση Βάσης (lsd) Παράδειγμα Συμβολοσειρών Μπορούμε να χρησιμοποιήσουμε για βάση ένα byte, δηλαδή R = 256. Τα ψηφία μας σε αυτήν την περίπτωση είναι όλοι οι χαρακτήρες του πίνακα ASCII. Για να υλοποιήσουμε την ταξινόμηση με δοχεία, χρειαζόμαστε 256 δοχεία, από 0 έως και 255. Ο αλγόριθμος λοιπόν θα ταξινομήσει τις συμβολοσειρές ως προς κάθε γράμμα (ξεκινώντας από το δεξιότερο) σε χρόνο O(L n). Χαροκόπειο Πανεπιστήμιο 67/70

249 Ταξινόμηση Βάσης (lsd) Παράδειγμα Συμβολοσειρών now for tip ace hut bet owl joy wee was raw ago ace wee owl ago tip for was hut bet now raw joy was raw ace wee bet ago tip for now joy hut owl ace ago bet for hut joy now owl raw tip was wee Χαροκόπειο Πανεπιστήμιο 68/70

250 Ταξινόμηση Βάσης (msd) Υπάρχει και η έκδοση ταξινόμησης βάσης most significant digit που ξεκινάμε από το πιο σημαντικό ψηφίο της κωδικοποίησης. Ο αλγόριθμος ταξινομεί αρχικά όλα τα κλειδιά σε R δοχεία με βάση το πιο σημαντικό ψηφίο. Στην συνέχεια ταξινομεί αναδρομικά τα περιεχόμενα των δοχείων με βάση τα κλειδιά με ένα λιγότερο ψηφίο. Χαροκόπειο Πανεπιστήμιο 69/70

251 Ταξινόμηση Βάσης (msd) Παράδειγμα Συμβολοσειρών now for tip hut bet foe joy wee was raw ago ace ago ace bet for foe hut joy now raw tip wee was ace ago for foe was wee foe for ace ago bet foe for hut joe now raw tip was wee Χαροκόπειο Πανεπιστήμιο 70/70

Αλγόριθμοι Ταξινόμησης 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 Ταξινόμηση (Φθίνουσα) Χωρίς Ταξινόμηση Ταξινόμηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων & Αλγόριθμοι Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση

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

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

Δομές Δεδομένων & Αλγόριθμοι Δομές Δεδομένων & Αναζήτηση & Ταξινόμηση 1 Αναζήτηση Έχω έναν πίνακα Α με Ν στοιχεία. Πρόβλημα: Βρες αν το στοιχείο x ανήκει στον πίνακα Αν ο πίνακας είναι αταξινόμητος τότε μόνη λύση σειριακή αναζήτηση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 1 Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 20: Αλγόριθμοι ΤαξινόμησηςIII Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Οι αλγόριθμοι ταξινόμησης: Ε. QuickSort Γρήγορη Ταξινόμηση - Έμμεση Ταξινόμηση - Εξωτερική Ταξινόμηση Διδάσκων:

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Κατακερματισμός. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Κατακερματισμός Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Λεξικό Dictionary Ένα λεξικό (dictionary) είναι ένας αφηρημένος τύπος δεδομένων (ΑΤΔ) που διατηρεί

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης

Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης 7η Δραστηριότητα Ελαφρύτερος και βαρύτερος Αλγόριθμοι ταξινόμησης Περίληψη Οι υπολογιστές χρησιμοποιούνται συχνά για την ταξινόμηση καταλόγων, όπως για παράδειγμα, ονόματα σε αλφαβητική σειρά, ραντεβού

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

1η Σειρά Γραπτών Ασκήσεων

1η Σειρά Γραπτών Ασκήσεων 1/20 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 1η Σειρά Γραπτών Ασκήσεων Αλγόριθμοι και Πολυπλοκότητα ΣΗΜΜΥ, Εθνικό Μετσόβιο Πολυτεχνείο 1 Ασυμπτωτικός Συμβολισμός, Αναδρομικές Σχέσεις 2 3 4 5 2/20

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

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

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

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

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort

Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Εργαστήριο 7: Ο αλγόριθμος ταξινόμησης Radix Sort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ο αλγόριθμος ταξινόμησης Radix Sort -Δυο εκδοχές: Most Significant Digit (MSD) και Least Significant

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

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

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

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

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

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

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

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

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

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

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

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

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα

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

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 8 Quick Sort 1 / 11 Ο αλγόριθμος QuickSort 1 Προτάθηκε από τον CAR (Tony) Hoare το 1961 2 Ο αλγόριθμος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φ Ρ Ο Ν Τ Ι Σ Τ Η Ρ Ι Ο 1 : ΤΑΞΙΝΟΜΗΣΗ Δ Ρ Ι Τ Σ Α Σ Η Λ Ι Α Σ Υ Π Ο Ψ Η Φ Ι Ο Σ Δ Ι Δ Α Κ Τ Ο Ρ Α Σ ΤΟ ΠΡΟΒΛΗΜΑ ΤΗΣ ΤΑΞΙΝΟΜΗΣΗΣ Ορισμός ταξινόμησης 2 Κατηγορίες αλγορίθμων ταξινόμησης

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

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

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

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

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

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

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

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

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ. Διάλεξη 13: Αλγόριθμοι Ταξινόμησης Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Οι αλγόριθμοι ταξινόμησης SelectionSort, InsertionSort, Στις ερχόμενες διαλέξεις θα δούμε τους αλγόριθμους Mergesort,

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ενότητα 2 ιαίρει και Βασίλευε Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 2 1 / 24 Επιλογή Το πρόβληµα

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

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

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

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 10: Ταξινόμηση Πίνακα Αναζήτηση σε Ταξινομημένο Πίνακα Πρόβλημα Δίνεται πίνακας t από Ν ακεραίους. Ζητούμενο: να ταξινομηθούν τα περιεχόμενα του πίνακα σε αύξουσα αριθμητική

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

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

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

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

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

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

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

Διατάξεις με επανάληψη: Με πόσους τρόπους μπορώ να διατάξω r από n αντικείμενα όταν επιτρέπονται επαναληπτικές εμφανίσεις των αντικειμένων; Στην αρχή

Διατάξεις με επανάληψη: Με πόσους τρόπους μπορώ να διατάξω r από n αντικείμενα όταν επιτρέπονται επαναληπτικές εμφανίσεις των αντικειμένων; Στην αρχή Στοιχειώδης συνδυαστική Συνδυασμοί και διατάξεις με επανάληψη Διατάξεις με επανάληψη: Με πόσους τρόπους μπορώ να διατάξω r από n αντικείμενα όταν επιτρέπονται επαναληπτικές εμφανίσεις των αντικειμένων;

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

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

Δομές Δεδομένων & Αλγόριθμοι - Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται

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

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

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

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης

Δοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης Δοµές Δεδοµένων 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι Ε. Μαρκάκης Περίληψη Bubble Sort Selection Sort Insertion Sort Χαρακτηριστικά επιδόσεων Shellsort Ταξινόµηση συνδεδεµένων λιστών Δοµές Δεδοµένων

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

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

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

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

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

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

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

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

ιαφάνειες παρουσίασης #4 ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος

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

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

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

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

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

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων Κατ οίκον Εργασία 2 Σκελετοί Λύσεων 1. (α) Αλγόριθµος: ηµιούργησε το σύνολο P που αποτελείται από τα άκρα όλων των ευθυγράµµων τµηµάτων. Βρες το κυρτό περίβληµα του P µε τον αλγόριθµο του Graham. Ορθότητα:

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

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016

ΜΥΥ105: Εισαγωγή στον Προγραμματισμό. Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016 ΜΥΥ105: Εισαγωγή στον Προγραμματισμό Αναζήτηση και Ταξινόμηση Χειμερινό Εξάμηνο 2016 Αναζήτηση και Ταξινόμηση Βασικές λειτουργίες σε προγράμματα Αναζήτηση (searching): Βρες ένα ζητούμενο στοιχείο σε μια

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ ΕΠΛ 035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. και Μηχ. Υπολ.

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

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

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1,

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1, Κεφάλαιο 4 Διαίρει και Βασίλευε (Divide and Conquer) Παύλος Εφραιμίδης V1.1, 2015-01-19 Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Διαίρει και Βασίλευε (Divide-and-Conquer) Διαίρει-και-βασίλευε

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

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

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

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

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

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

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

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

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

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

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