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

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

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

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

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

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

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

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

Διοικητική Λογιστική

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

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

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Ψηφιακή Επεξεργασία Εικόνων

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

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

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Βάσεις Περιβαλλοντικών Δεδομένων

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

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Διοικητική Λογιστική

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ιστορία της μετάφρασης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων

Ψηφιακή Επεξεργασία Εικόνων

Εισαγωγή στους Υπολογιστές

Δομές Δεδομένων Ενότητα 1

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

Κβαντική Επεξεργασία Πληροφορίας

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

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

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Κοινωνία & Υγεία Υγεία Πρόληψη Προαγωγή υγείας: Βαθμίδες πρόληψης

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Τεχνικό Σχέδιο - CAD

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Αλγόριθμοι και πολυπλοκότητα Bucket-Sort και Radix-Sort

Ψηφιακή Επεξεργασία Εικόνων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

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

Κβαντική Επεξεργασία Πληροφορίας

Τεχνικό Σχέδιο - CAD

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Βέλτιστος Έλεγχος Συστημάτων

Διδακτική Πληροφορικής

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 3

Διδακτική των εικαστικών τεχνών Ενότητα 1

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

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

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

Μάρκετινγκ Αγροτικών Προϊόντων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Επεξεργασία Σημάτων. Άσκηση 3η. Στυλιανού Ιωάννης. Τμήμα Επιστήμης Υπολογιστών

Κβαντική Επεξεργασία Πληροφορίας

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Εισαγωγή στην Πληροφορική

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Διοίκηση Επιχειρήσεων

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

Πολιτική (και) επικοινωνία

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Διδακτική των εικαστικών τεχνών Ενότητα 3

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Διδακτική Πληροφορικής

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

Εισαγωγή στην Πληροφορική

Transcript:

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

Συγχωνευτική Ταξινόμηση (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

Περίληψη και ανάγνωση Παράδειγμα διαίρει και κυρίευε Συγχωνευτική Ταξινόμηση (Merge-sort) Αλγόριθμος Συγχωνεύοντας δύο ταξινομημένες ακολουθίες Δέντρο της Συγχωνευτικής Ταξινόμησης Παράδειγμα εκτέλεσης Ανάλυση Γενική συγχώνευση και σύνολο λειτουργιών Περίληψη αλγορίθμων ταξινόμησης Συγχωνευτική ταξινόμηση 2

Διαίρει και κυρίευε Ο διαίρει και κυρίευε είναι ένα γενικό παράδειγμα σχεδίασης αλγορίθμου : Διαίρει: διαίρεσε τα δεδομένα εισόδου S σε δύο αποσυνδεδεμένα υποσύνολα S 1 και S 2 Επανέλαβε: λύσε τα υποπροβλήματα που σχετίζονται με τα S 1 και S 2 Κυρίευε: συνδύασε τις λύσεις για το S 1 και S 2 σε μια λύση για το S Η ταπεινή περίπτωση για αναδρομή είναι τα υποπροβλήματα μεγέθους 0 ή 1 Η ταξινόμηση συγχώνευσης είναι ένας αλγόριθμος ταξινόμησης που βασίζεται στο παράδειγμα διαίρει και κυρίευε Σαν ταξινομημένος σωρός Χρησιμοποιεί έναν comparator Έχει O(n log n) χρόνο εκτέλεσης Όχι σαν ταξινομημένος σωρός Δεν χρησιμοποιεί βοηθητική ουρά προτεραιότητας Προσπελάσει τα δεδομένα με έναν διαδοχικό τρόπο (κατάλληλο για ταξινόμηση δεδομένων σε έναν δίσκο) Συγχωνευτική ταξινόμηση 3

Συγχωνευτική Ταξινόμηση (Merge-sort ) Η Συγχωνευτική Ταξινόμηση σε μία ακολουθία εισόδου S με n στοιχεία αποτελείται από τρία βήματα: Διαίρει : διαχωρισμός της S σε δύο ακολουθίες S 1 και S 2 με n/2 στοιχεία περίπου η κάθε μία Επανέλαβε : επαναληπτικά ταξινόμησε τις S 1 και S 2 Κυρίευε : συγχώνευσε τις S 1 και S 2 σε μία μοναδική ταξινομημένη πρόταση Αλγόριθμος mergesort(s, C) Είσοδος ακολουθία S με n στοιχεία, comparator C Έξοδος ακολουθία S ταξινομημένη σύμφωνα με το C if S.size() > 1(S 1, S 2 ) partition(s, n/2) mergesort(s 1, C) mergesort(s 2, C) S merge(s 1, S 2 ) Συγχωνευτική ταξινόμηση 4

Συγχωνεύοντας δύο ταξινομημένες ακολουθίες Το βήμα κυρίευε της ταξινόμησης της συγχώνευσης αποτελείται από την συγχώνευση δύο ταξινομημένων ακολουθιών A και B σε με ταξινομημένη ακολουθία S που περιέχει την ένωση των στοιχείων της A και της B Συγχωνεύοντας δύο ταξινομημένες ακολουθίες, με n/2 στοιχεία η κάθε μία και χρησιμοποιώντας διπλά συνδεδεμένη λίστα, παίρνει χρόνο O(n) Αλγόριθμος merge(a, B) Είσοδος ακολουθίες A και B με n/2 στοιχεία η κάθε μία Έξοδος ταξινομημένη ακολουθία A B S κενή ακολουθία while A.isEmpty() B.isEmpty() if A.first().element() < B.first().element() S.insertLast(A.remove(A.first())) else S.insertLast(B.remove(B.first())) while A.isEmpty() S.insertLast(A.remove(A.first())) while B.isEmpty() S.insertLast(B.remove(B.first())) return S Συγχωνευτική ταξινόμηση 5

Δέντρο Συγχωνευτικής Ταξινόμησης (Merge-Sort Tree) Μία εκτέλεση της ταξινόμησης συγχώνευσης απεικονίζεται από ένα δυαδικό δέντρο Κάθε κόμβος αναπαριστά μία αναδρομική κλήση της ταξινόμησης συγχώνευσης και κρατά Μη ταξινομημένες ακολουθίες πριν την εκτέλεση και τον διαχωρισμό του Ταξινομημένες ακολουθίες στο τέλος της εκτέλεσης Η ρίζα είναι η αρχική κλήση Τα φύλλα είναι κλήσεις υπο-ακολουθιών μεγέθους 0 ή 1 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

Παράδειγμα εκτέλεσης Διαχωρισμός 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 7

Παράδειγμα εκτέλεσης (Συνέχεια) Αναδρομική κλήση, διαχωρισμός 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 8

Παράδειγμα εκτέλεσης (Συνέχεια) Αναδρομική κλήση, διαχωρισμός 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 9

Παράδειγμα εκτέλεσης (Συνέχεια) Αναδρομική κλήση, ταπεινή περίπτωση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 10

Παράδειγμα εκτέλεσης (Συνέχεια) Αναδρομική κλήση, ταπεινή περίπτωση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 11

Παράδειγμα εκτέλεσης (Συνέχεια) Συγχώνευση ( Merge ) 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 12

Παράδειγμα εκτέλεσης (Συνέχεια) Αναδρομική κλήση,, ταπεινή περίπτωση, συγχώνευση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 13

Παράδειγμα εκτέλεσης (Συνέχεια) Συγχώνευση (Merge) 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 8 6 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 14

Παράδειγμα εκτέλεσης (Συνέχεια) Αναδρομική κλήση,,, συγχώνευση, συγχώνευση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 6 8 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 15

Παράδειγμα εκτέλεσης (Συνέχεια) Συγχώνευση 7 2 9 4 3 8 6 1 1 2 3 4 6 7 8 9 7 2 9 4 2 4 7 9 3 8 6 1 1 3 6 8 7 2 2 7 9 4 4 9 3 8 3 8 6 1 1 6 7 7 2 2 9 9 4 4 3 3 8 8 6 6 1 1 Συγχωνευτική ταξινόμηση 16

Ανάλυση της Συγχωνευτικής Ταξινόμησης ( Merge-Sort). Το ύψος h του δέντρου της συγχωνευτικής ταξινόμησης είναι O(log n) Σε κάθε αναδρομική κλήση διαιρούμε στη μέση την ακολουθία, Το συνολικό ποσό ή δουλεία που γίνεται στους κόμβους βάθους i είναι O(n) Διαχωρίζουμε και συγχωνεύουμε 2 i ακολουθίες μεγέθους n/2 i κάνουμε 2 i+1 αναδρομικές κλήσεις Έτσι, ο συνολικός χρόνος εκτέλεσης της συγχωνευτικής ταξινόμησης είναι O(n log n) βάθος #ακολουθίας 0 1 μέγεθ ος n 1 2 n/2 i 2 i n/2 i Συγχωνευτική ταξινόμηση 17

Summary of Sorting Algorithms Αλγόριθμος Επιλεκτική ταξινόμηση Ενθετική ταξινόμηση Ταξινόμηση σωρού Χρόνος O(n 2 ) O(n 2 ) O(n log n) Παρατηρήσεις αργή in-place για μικρά σύνολα δεδομένων (< 1K) αργή in-place για μικρά σύνολα δεδομένων (< 1K) γρήγορη in-place για μεγάλα σύνολα δεδομένων (1K 1M) Συγχωνευτική ταξινόμηση O(n log n) γρήγορη διαδοχικήπρόσβασηδεδομένων γιατεράστιασύνολαδεδομένων (> 1M) Συγχωνευτική ταξινόμηση 18

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

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημειώματα

Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγο Έργο 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Κρήτης, Ιωάννης Τόλλης 2015. «Αλγόριθμοι και πολυπλοκότητα. Συγχωνευτική Ταξινόμηση». Έκδοση: 1.0. Ηράκλειο 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://opencourses.uoc.gr/courses/course/view.php?id=368

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους.