Βασική επιστήμη των υπολογιστών

Η Ταξινόμηση επιλογήςείναι ένας αλγόριθμος ταξινόμησης που βρίσκει επανειλημμένα το μικρότερο στοιχείο (ταξινόμηση αύξουσας σειράς) σε έναν πίνακα από το μη ταξινομημένο τμήμα και βάζει αυτό το στοιχείο στην αρχή. Παρόμοια με το insertion sort, διατηρεί δύο εικονικούς υποσυστοιχίες σε έναν δεδομένο πίνακα. Σε κάθε επανάληψη, η πρώτη υποσυστοιχία διασφαλίζει ότι συγκρατεί τα μικρότερα στοιχεία σε αυξανόμενη σειρά.

Πρόβλημα

Ας υποθέσουμε ότι σας δίνουμε ένα δείγμα πίνακα από μη ταξινομημένους ακέραιους αριθμούς και η δουλειά σας είναι να γράψετε έναν αλγόριθμο ταξινόμησης επιλογής που θα ταξινομεί τους αριθμούς σε αύξουσα σειρά.

[8, 5, 3, 2, 6, 9, 7, 4, 1]

Αλγόριθμος

  1. Επαναλάβετε τον πίνακα ξεκινώντας από το πρώτο στοιχείο μέχρι το δεύτερο τελευταίο στοιχείο
  2. Χρησιμοποιήστε μια δεύτερη επανάληψη για να επαναλάβετε όλα τα στοιχεία ξεκινώντας από το επόμενο στοιχείο που επιλέχθηκε στο βήμα 1
  3. Σε κάθε εσωτερική επανάληψη, βρείτε το μικρότερο στοιχείο
  4. Αφού ολοκληρώσετε την εσωτερική επανάληψη, αλλάξτε το τρέχον στοιχείο με το μικρότερο στοιχείο

Κώδικας

[8, 5, 3, 2, 6, 9, 7, 4, 1]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
  1. Εδώ η συνάρτηση selectionSort θα λάβει έναν ακέραιο πίνακα ως παράμετρο με αναφορά
  2. Ο πρώτος βρόχος for αρχίζει να επαναλαμβάνεται από το πρώτο στοιχείο του πίνακα μέχρι το δεύτερο τελευταίο
  3. Αρχικά το minIdx ορίζεται στο τρέχον στοιχείο με τον πρώτο βρόχο για
  4. Ο εσωτερικός βρόχος for ξεκινά από το δεύτερο στοιχείο ξεκινώντας από το πρώτο στοιχείο και ελέγξτε όλα τα στοιχεία του πίνακα
  5. Σε κάθε επανάληψη, ο δεύτερος βρόχος for αναζητά το μικρότερο στοιχείο και ενημερώνει το minIdx αλλά το ευρετήριο του μικρότερου στοιχείου
  6. Αφού ο εσωτερικός βρόχος for ολοκληρώσει τη δουλειά του, αλλάζει το τρέχον στοιχείο που επιλέχθηκε από τον πρώτο βρόχο for και αντικαταστάθηκε από τον δείκτη στοιχείου minIdx

Ανάλυση Αλγορίθμων

  • Χρόνος: O(n²) — Κατά μέσο όρο ή χειρότερο σενάριο. Όπου n είναι ο αριθμός των στοιχείων του πίνακα
  • Διάστημα: O(1) — Καθώς δεν απαιτείται επιπλέον χώρος. Ο κύριος πίνακας τροποποιείται στη θέση του.

Περισσότεροι αλγόριθμοι ταξινόμησης:

  1. Ταξινόμηση εισαγωγής
  2. Ταξινόμηση συγχώνευσης
  3. "Γρήγορη ταξινόμηση"