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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα Η Άπληστη Μέθοδος

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

Αλγόριθμοι και πολυπλοκότητα Οριζόντια διερεύνηση

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

ΟΙΚΟΝΟΜΙΚΑ ΜΑΘΗΜΑΤΙΚΑ

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

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

Φιλοσοφία της Ιστορίας και του Πολιτισμού

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

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

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

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

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

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

Διαχείριση Πολιτισμικών Δεδομένων

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

Transcript:

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

Ταχυταξινόμηση (Quick-Sort) 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Ταχυταξινόμηση 1

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

Ταχυταξινόμηση Ταχυταξινόμηση: αλγόριθμος ταξινόμησης, δημιουργημένος από συνθήκες τυχαιότητας, βασισμένος στην τεχνική «διαίρει και κυρίευε»: Διαίρει: επέλεξε τυχαίο στοιχείο x (οδηγός) και διαίρεσε το S σε L στοιχεία μικρότερα του x E στοιχεία ίσα με το x G στοιχεία μεγαλύτερα του x Επανάληψη: ταξινόμησε τα L και G Κυρίευε: ένωσε τα L, E και G L x x E x G Ταχυταξινόμηση 3

Διαμέριση Διαιρούμε μια ακολουθία εισόδου ως εξής: Αφαιρούμε, με τη σειρά, κάθε στοιχείο y από το S και Εισάγουμε το y στο L, E ή G, ανάλογα με το αποτέλεσμα της σύγκρισης με το x (οδηγός) Κάθε εισαγωγή και αφαίρεση γίνεται στην αρχή ή το τέλος της ακολουθίας, και έτσι χρειάζεται O(1) χρόνο Έτσι, το βήμα διαμέρισης της ταχυταξινόμησης χρειάζεται O(n) χρόνο Algorithm partition(s, p) Input sequence S, position p of pivot Output subsequences L, E, G of the elements of S less than, equal to, or greater than the pivot, resp. L, E, G empty sequences x S.remove(p) while S.isEmpty() y S.remove(S.first()) if y < x L.insertLast(y) else if y = x E.insertLast(y) else { y > x } G.insertLast(y) return L, E, G Ταχυταξινόμηση 4

Δένδρο ταχυταξινόμησης Κάθε εκτέλεση της ταχυταξινόμησης απεικονίζεται με ένα δυαδικό δένδρο Κάθε κόμβος αναπαριστά μία αναδρομική κλήση της ταχυταξινόμησης και αποθηκεύει Μη ταξινομημένη ακολουθία πριν την εκτέλεση και τον οδηγό της Ταξινομημένη ακολουθία στο τέλος της εκτέλεσης Η ρίζα είναι η αρχική κλήση Τα φύλλα είναι κλήσεις σε υπό-ακολουθίες μεγέθους 0 ή 1 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Ταχυταξινόμηση 5

Παράδειγμα Εκτέλεσης Επιλογή του οδηγού 7 2 9 4 3 7 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 2 2 9 4 4 9 3 3 8 8 9 9 4 4 Ταχυταξινόμηση 6

Παράδειγμα Εκτέλεσης (συν.) Διαμέριση, αναδρομική κλήση, επιλογή οδηγού 7 2 9 4 3 7 6 1 1 2 3 4 6 7 8 9 2 4 3 1 2 4 7 9 3 8 6 1 1 3 8 6 2 2 9 4 4 9 3 3 8 8 9 9 4 4 Ταχυταξινόμηση 7

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

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

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

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

Παράδειγμα Εκτέλεσης (συν.) Ένωση, ένωση 7 2 9 4 3 7 6 1 1 2 3 4 6 7 7 9 2 4 3 1 1 2 3 4 7 9 7 17 7 9 1 1 4 3 3 4 8 8 9 9 9 9 4 4 Ταχυταξινόμηση 12

Χρόνος Εκτέλεσης Χειρότερης Περίπτωσης Η χειρότερη περίπτωση της ταχυταξινόμησης συμβαίνει όταν το στοιχείο οδηγός είναι το μοναδικό ελάχιστο ή μέγιστο στοιχείο Ένα από τα L και G έχει μέγεθος n 1 στοιχείο και το άλλο 0 Ο χρόνος εκτέλεσης είναι ανάλογος του αθροίσματος n + (n 1) + + 2 + 1 Έτσι, o χρόνος εκτέλεσης της χειρότερης περίπτωσης της ταχυταξινόμησης :O(n 2 ) βάθος χρόνος 0 n 1 n 1 n 1 1 Ταχυταξινόμηση 13

Αναμενόμενος Χρόνος Εκτέλεσης Έστω αναδρομική κλήση της ταχυταξινόμησης σε μια ακολουθία μεγέθους s Καλή κλήση: τα μεγέθη των L και G είναι το καθένα μικρότερα του 3s/4 Κακή κλήση: ένα από τα L και G έχουν μέγεθος μεγαλύτερο του 3s/4 7 2 9 4 3 7 6 1 9 7 2 9 4 3 7 6 1 2 4 3 1 7 9 7 1 1 1 7 2 9 4 3 7 6 Καλή κλήση Κακή κλήση Μια κλήση είναι καλή με πιθανότητα 1/2 1/2 των πιθανών οδηγών προκαλούν καλές κλήσεις: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Κακοί οδηγοί Καλοί οδηγοί Κακοί οδηγοί Ταχυταξινόμηση 14

Αναμενόμενος Χρόνος Εκτέλεσης, Μέρος 2 Πιθανοτικό Γεγονός: Ο αναμενόμενος αριθμός ρίψεων κέρματος για να έρθουν k κορώνες είναι 2k Για ένα κόμβο βάθους i, περιμένουμε i/2 προγόνους να είναι καλές κλήσεις Το μέγεθος της ακολουθίας εισόδου για την τρέχουσα κλήση είναι το πολύ (3/4) i/2 n expected height Έτσι, έχουμε s(r) Για ένα κόμβο βάθους 2log 4/3 n, το αναμενόμενο μέγεθος εισόδου είναι s(a) s(b) Το αναμενόμενο ύψος του δένδρου quick-sort tree είναι O(log n) Το ποσό δουλειάς που έγινε για τους κόμβους του ίδιου βάθους είναι O(n) Έτσι, αναμενόμενος χρόνος εκτέλεσης ταχυταξινόμησης: O(n log n) O(log n) s(c) s(d) s(e) s(f) Ταχυταξινόμηση 15 time per level O(n) O(n) O(n) total expected time: O(n log n)

Ταχυταξινόμηση με αναδιάταξη Η ταχυταξινόμηση μπορεί να υλοποιηθεί με αναδιάταξη στοιχείων Στο βήμα κατάτμησης, χρησιμοποιούμε λειτουργίας αντικατάστασης για να επανατοποθετήσουμε τα στοιχεία της ακολουθίας εισόδου, ώστε: τα στοιχεία μικρότερα του οδηγού έχουν βαθμό κατάταξης μικρότερο του h τα στοιχεία ίσα με τον οδηγό έχουν βαθμό ανάμεσα στα h και k τα στοιχεία μεγαλύτερα του οδηγού έχουν βαθμό μεγαλύτερο του k Οι αναδρομικές κλήσεις θεωρούν: Στοιχεία με βαθμό < h Στοιχεία με βαθμό > k Algorithm inplacequicksort(s, l, r) Input sequence S, ranks l and r Output sequence S with the elements of rank between l and r rearranged in increasing order if l r return i a random integer between l and r x S.elemAtRank(i) (h, k) inplacepartition(x) inplacequicksort(s, l, h 1) inplacequicksort(s, k + 1, r) Ταχυταξινόμηση 16

Διαμέριση με αναδιάταξη Εκτέλεση την κατάτμηση χρησιμοποιώντας 2 δείκτες για να χωρίσεις το S στα L και E U G (παρόμοια μέθοδος μπορεί να χωρίσει το E U G σε E και G). 3 2 5 1 0 7 3 5 9 2 7 9 8 9 7 6 9 (οδηγός = 6) Επανέλαβε μέχρι την αντιμετάθεση των j και k : Σάρωσε το j προς τα δεξιά μέχρι να βρεθεί στοιχείο > x. Σάρωσε k προς τα αριστερά μέχρι να βρεθεί στοιχείο < x. Αντάλλαξε τα στοιχεία στις θέσεις με δείκτες j και k 3 2 5 1 0 7 3 5 9 2 7 9 8 9 7 6 9 j k Ταχυταξινόμηση 17

Σύνοψη Αλγορίθμων Ταξινόμησης Αλγόριθμος Επιλεκτική ταξινόμηση Ενθετική ταξινόμηση Ταχυταξινόμηση Ταξινόμηση σωρού Συγχωνευτική Χρόνος O(n 2 ) O(n 2 ) O(n log n) expected O(n log n) in-place, συνθήκες τυχαιότητας γρήγορος (καλός για μεγάλες εισόδους) Ακολουθιακή πρόσβαση δεδομένων Ταχυταξινόμηση 18 O( l ) Σημειώσεις in-place αργός (καλός για μικρές εισόδους) in-place αργός (καλός για μικρές εισόδους) in-place γρήγορος (καλός για μεγάλες εισόδους)

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

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

Σημειώματα

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

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

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