Αρχική ΑΕΠΠ - Δομές Δεδομένων Λειτουργικά Συστήματα Δίκτυα Υπολογιστών ΙΙ Βάσεις Δεδομένων Παιδαγωγικά - Διδακτική
Μεταβλητή - Έκφραση Δομή Ακολουθίας Δομή Επιλογής Δομή Επανάληψης
Μονοδιάστατοι Δισδιάστατοι Πολυδιάστατοι Αναζήτηση Ταξινόμηση Στοίβα Ουρά
Συναρτήσεις Διαδικασίες Σχετικά με τις παράμετρους
Η ταξινόμηση αυτή πραγματοποιείται με τα παρακάτω βήματα:
Στον παρακάτω πίνακα φαίνεται πως λειτουργεί ο αλγόριθμος. Με μαύρο φόντο είναι τα στοιχεία του πίνακα που αλλάζουν θέση και με γκρι είναι το ταξινομημένο τμήμα του πίνακα. Παρατηρήστε ότι για i=4, το 42 είναι το μικρότερο από όλα τα στοιχεία που βρίσκονται δεξιά του, έτσι δεν έχουμε ανταλλαγή στοιχείων. Το ίδιο ισχύει για i=6.

Για κάθε i θεωρούμε την τιμή Α[i] ως την μικρότερη. Ο εσωτερικός βρόχος ελέγχει αν πράγματι η τιμή αυτή είναι μικρότερη, εξετάζοντας τα στοιχεία Α[(i+1)..n]. Ο βρόχος αυτός τερματίζει πάντα γιατί φτάνει στο n. Αν βρέθηκε μικρότερο στοιχείο, έστω Α[k] τότε αυτό μεταφέρεται στη θέση Α[i], έτσι ο πίνακας Α[1..i] είναι ταξινομημένος.
Ο εξωτερικός βρόχος τερματίζει όταν i=n-1 οπότε και ελέγχονται τα δύο τελευταία στοιχεία του πίνακα Α[n-1] και A[n], και τοποθετείται το μικρότερο στη θέση Α[n-1] και το μεγαλύτερο στην A[n].
Άρα, όταν τελειώσει και ο εξωτερικός βρόχος, όλα τα στοιχεία του πίνακα είναι ταξινομημένα σε αύξουσα σειρά.
Ο αλγόριθμος έχει δύο βρόχους εμφολιασμένους. Ο εσωτερικός βρόχος for εκτελείται κάθε για κάθε i και συγκεκριμένα n-1 φορές για i=1, n-2 για i=2 και μία φορά για i=n-1, συνολικά n(n-1)/2 φορές.
Ο βρόχος for εκτελείται n φορές.
Ο συνολικός χρόνος για τον αλγόριθμο είναι:
Ο μεγαλύτερος όρος είναι ο n2, άρα ο αλγόριθμος είναι τετραγωνικής πολυπλοκότητας Ο(n2).
Ο αλγόριθμος ευθείας παρεμβολής, όταν τα στοιχεία του πίνακα είναι ήδη ταξινομημένα, ο εσωτερικός βρόχος while δεν εκτελείται με αποτέλεσμα η χρονική πολυπλοκότητά του να είναι γραμμική Ο(n).
Στον αλγόριθμος ευθείας επιλογής, όταν τα στοιχεία του πίνακα είναι ήδη ταξινομημένα, ο εσωτερικός βρόχος for εκτελείται πάντα, με αποτέλεσμα η χρονική πολυπλοκότητά του να είναι πάντα τετραγωνική Ο(n2).
Ο αλγόριθμος χρησιμοποιεί έναν πίνακα με n στοιχεία και τέσσερις μεταβλητές, την i, την j, την pos και την min. Αυτές οι μεταβλητές καταλαμβάνουν από μία θέση μνήμης η κάθε μία. Οπότε, συνολικά η θέσεις μνήμης που χρησιμοποιεί ο αλγόριθμος είναι:
S(n)=n+4
Η χωρική πολυπλοκότητα καθορίζεται από τον μεγαλύτερο όρο της εξίσωσης ο οποίος είναι ο n, δηλαδή, ο αλγόριθμος έχει γραμμική χωρική πολυπλοκότητα O(n).
Copyright 2008 - Άρης Φεργάδης