Ταξινόμηση
Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr
Εισαγωγή
-  Οι αλγόριθμοι ταξινόμησης (sorting algorithms)
θέτουν τα στοιχεία μιας δομής δεδομένων σε σειρά σύμφωνα με μια
ορισμένη σχέση διάταξης.
-  Αν τα στοιχεία είναι οργανωμένα σε 
εγγραφές (records) και κάθε μια από αυτές απαρτίζεται από 
πεδία (fields) τότε το πεδίο με βάση το οποίο γίνεται
η ταξινόμηση ονομάζεται κλειδί (key) της ταξινόμησης.
-  Το κόστος μιας ταξινόμησης εκφράζεται ανάλογα με τον αριθμό συγκρίσεων
και μετακινήσεων που απαιτούνται κατ' ελάχιστο, μέγιστο και κατά μέσο όρο.
-  Συχνά για να αποφευχθεί το κόστος των μετακινήσεων αντί για τα
στοιχεία, ταξινομήται ένας πίνακας με δείκτες στα αντίστοιχα στοιχεία.
Ταξινόμηση με παρεμβολή
-  Στη ταξινόμηση με παρεμβολή (insertion sort) τα
στοιχεία χωρίζονται σε:
-  αυτά τα οποία έχουν ταξινομηθεί,
-  αυτό τα οποία θα ταξινομηθεί, και
-  αυτά τα οποία δεν έχουν ταξινομηθεί.
 
-  Σε κάθε βήμα το στοιχείο που πρέπει να ταξινομηθεί εισάγεται στη
σωστή θέση αυτών που έχουν ταξινομηθεί.
-  Για την εύρεση του σημείου εισαγωγής μπορεί να χρησιμοποιηθεί και ο 
αλγόριθμος της δυαδικής αναζήτησης.
-  Οι συγκρίσεις που απαιτούνται είνα n-1 ... n*log(n)-exp(n-1) ... (n*n+n)/2-1
-  Οι μετακινήσεις που απαιτούνται είναι n ... 1/4(n*n+n+2) ... (n*n+n)/2
Ταξινόμηση με επιλογή
-  Στη ταξινόμηση με επιλογή (selection sort) τα
στοιχεία χωρίζονται σε:
-  αυτά τα οποία έχουν ταξινομηθεί,
-  αυτά τα οποία δεν έχουν ταξινομηθεί.
 
-  Σε κάθε βήμα επιλέγεται το ελάχιστο στοιχείο από αυτά τα οποία
δεν έχουν ταξινομηθεί και εισάγεται στο τέλος των στοιχείων που έχουν
ταξινομηθεί.
-  Οι συγκρίσεις που απαιτούνται είνα (n*n-n)/2
-  Οι μετακινήσεις που απαιτούνται είναι (n-1)/3 ... n*n/4 + (n-1)/3
Ταξινόμηση με αντιμετάθεση
-  Στη ταξινόμηση με αντιμετάθεση (exchange sort) τα
στοιχεία ταξινομούνται με διαδοχική αντιμετάθεση ζευγών που δεν ακολουθούν
τη διάταξη της ταξινόμησης.
-  Ο αλγόριθμος μπορεί να βελιτωθεί εναλλάσσοντας σε κάθε πέρασμα
τη φορά του ελέγχου.
-  Στην πρώτη περίπτωση ονομάζεται bubble sort (ταξινόμηση 
φυσαλίδας), στη δεύτερη shake sort.
Ταξινόμηση με διαμερισμό και αντιμετάθεση
Βιβλιογραφία
- Χρήστος Κοίλιας
Δομές Δεδομένων και Οργανώσεις Αρχείων. σ. 119-132
	Εκδόσεις Νέων Τεχνολογιών, 1993.
 
- Donald E. Knuth.
The Art of Computer Programming, volume 3 / Searching
and Sorting.
Addison-Wesley, second edition, 1973.
 
- Niklaus Wirth.
Algorithms + Datastructures = Programs. p. 73-134.
Prentice-Hall, 1976.
 
- Sarwar, S. Mansoor, Sarwar, Syed Aqeel, and Brandeburg, Jesse.
Engineering Quicksort.
Computer Languages, 22(1), 1996.
 
Ασκήσεις
Άσκηση ADS08
-  Να υλοποιηθεί σε Pascal πρόγραμμα το οποίο διαβάζει σειρά
από ακεραίους μέχρι να συνατήσει την τιμή 0 και
με ταξινόμηση διαμερισμού τους τυπώνει με αριθμητική σειρά.
Παράδειγμα:
 
4
6
1
3
0
1
3
4
6
 
Περισσότερες λεπτομέρειες για τις ασκήσεις