Πώς να χρησιμοποιήσετε την ταξινόμηση επιλογής

Πώς να χρησιμοποιήσετε την ταξινόμηση επιλογής

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





Ο αλγόριθμος το κάνει επανειλημμένα μέχρι να ταξινομηθεί η λίστα. Εάν δεν είστε σίγουροι για το πώς λειτουργεί η ταξινόμηση επιλογής, έχετε έρθει στο σωστό μέρος. Θα το εξηγήσουμε πιο αναλυτικά παρακάτω, μαζί με ένα παράδειγμα.





Ταξινόμηση επιλογής: Μια πιο προσεκτική ματιά

Ας υποθέσουμε ότι έχετε τη λίστα: [39, 82, 2, 51, 30, 42, 7]. Για να ταξινομήσετε τη λίστα χρησιμοποιώντας ταξινόμηση επιλογής, θα πρέπει πρώτα να βρείτε τον μεγαλύτερο αριθμό σε αυτήν.





Με τη δεδομένη λίστα, αυτός ο αριθμός είναι 82. Αντικαταστήστε το 82 με τον αριθμό στον υψηλότερο δείκτη (δηλαδή, 7).

Μετά το πρώτο πέρασμα, η νέα σειρά λίστας θα είναι: [39, 7, 2, 51, 30, 42, 82]. Κάθε φορά που ο αλγόριθμος περνάει από ολόκληρη τη λίστα, αυτό ονομάζεται «πέρασμα».



Παρατηρήστε ότι η λίστα διατηρεί μια ταξινομημένη υπο -λίστα και μια μη ταξινομημένη υπο -λίστα κατά τη διαδικασία ταξινόμησης.

πώς να αλλάξετε το χρώμα φόντου στο css

Σχετίζεται με: Τι είναι το Big-O Notation;





Η αρχική λίστα ξεκινά με μια ταξινομημένη λίστα μηδενικών στοιχείων και μια μη ταξινομημένη λίστα όλων των στοιχείων. Στη συνέχεια, μετά το πρώτο πέρασμα, έχει μια ταξινομημένη λίστα με μόνο τον αριθμό 82.

Στο δεύτερο πέρασμα, ο υψηλότερος αριθμός στη μη ταξινομημένη υπο -λίστα θα είναι 51. Αυτός ο αριθμός θα ανταλλαχθεί με 42 για να δοθεί η νέα σειρά παραγγελίας παρακάτω:





πώς να ορίσετε τον προεπιλεγμένο λογαριασμό Google

[39, 7, 2, 42, 30, 51, 82].

Η διαδικασία επαναλαμβάνεται μέχρι να ταξινομηθεί ολόκληρη η λίστα. Το παρακάτω σχήμα συνοψίζει ολόκληρη τη διαδικασία:

Οι αριθμοί με έντονο μαύρο δείχνουν την υψηλότερη τιμή λίστας εκείνη τη στιγμή. Εκείνοι με πράσινο χρώμα εμφανίζουν την ταξινομημένη υπο -λίστα.

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

Για να αποκτήσετε την πολυπλοκότητα (χρησιμοποιώντας τη σημείωση Big-O) αυτού του αλγορίθμου, ακολουθήστε τα παρακάτω:

Στο πρώτο πέρασμα, (n-1) γίνονται συγκρίσεις. Στο δεύτερο πέρασμα, (n-2). Στο τρίτο πέρασμα, (n-3) και ούτω καθεξής μέχρι το (n-1) th πέρασμα που κάνει μόνο μία σύγκριση.

Συνοψίζοντας τις συγκρίσεις όπως παρακάτω δίνεται:

(n-1)+ (n-1)+ (n-1)+ ...+ 1 = ((n-1) n)/2.

Επομένως, η ταξινόμηση επιλογής είναι O (n2).

Εφαρμογή Κώδικα

Ο κώδικας εμφανίζει συναρτήσεις που μπορείτε να χρησιμοποιήσετε για την εκτέλεση ταξινόμησης επιλογής χρησιμοποιώντας Python και Java.

Πύθων:

def selectionSort(mylist):
for x in range(len(mylist) - 1, 0, -1):
max_idx = 0
for posn in range(1, x + 1):
if mylist[posn] > mylist[max_idx]:
max_idx = posn
temp = mylist[x]
mylist[x] = mylist[max_idx]
mylist[max_idx] = temp

Ιάβα:

void selectionSort(int my_array[]){
for (int x = 0; x {
int index = x;
for (int y = x + 1; y if (my_array[y] index = y; // find lowest index
}
}
int temp = my_array[index]; // temp is a temporary storage
my_array[index] = my_array[x];
my_array[x] = temp;
}}

Μετακίνηση από ταξινόμηση επιλογής σε συγχώνευση ταξινόμησης

Όπως έχει δείξει η ανάλυση αλγορίθμου παραπάνω, ο αλγόριθμος ταξινόμησης επιλογής είναι O (n2). Έχει εκθετική πολυπλοκότητα και ως εκ τούτου είναι αναποτελεσματική για πολύ μεγάλα σύνολα δεδομένων.

πώς να ξέρω τι μητρική έχω

Ένας πολύ καλύτερος αλγόριθμος για χρήση θα ήταν η συγχώνευση με μια πολυπλοκότητα του O (nlogn). Και τώρα ξέρετε πώς λειτουργεί η ταξινόμηση επιλογής, στη συνέχεια στη λίστα μελετών σας για αλγόριθμους ταξινόμησης θα πρέπει να είναι η ταξινόμηση συγχώνευσης.

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Οι 8 καλύτεροι ιστότοποι για δωρεάν λήψη ηχητικών βιβλίων

Τα ηχητικά βιβλία είναι μια μεγάλη πηγή ψυχαγωγίας και πολύ πιο εύπεπτα. Ακολουθούν οι οκτώ καλύτερες ιστοσελίδες από όπου μπορείτε να τις κατεβάσετε δωρεάν.

Διαβάστε Επόμενο
Σχετικά θέματα
  • Προγραμματισμός
  • Προγραμματισμός
  • Αλγόριθμοι
Σχετικά με τον Συγγραφέα Τζερόμ Ντέιβιντσον(Δημοσιεύθηκαν 22 άρθρα)

Ο Jerome είναι Staff Writer στο MakeUseOf. Καλύπτει άρθρα σχετικά με τον Προγραμματισμό και το Linux. Είναι επίσης λάτρης των κρυπτογράφησης και παρακολουθεί πάντα τη βιομηχανία κρυπτογράφησης.

Περισσότερα από τον Jerome Davidson

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή