Πώς να εφαρμόσετε τη λειτουργία ταξινόμησης στο C ++;



Αυτό το άρθρο θα σας βοηθήσει να εξερευνήσετε τη λειτουργία Ταξινόμησης στο c ++ και στη διαδικασία να σας δώσει μια λεπτομερή επίδειξη σχετικά με την ιδέα

Ταξινόμηση είναι μια από τις πιο βασικές και χρήσιμες λειτουργίες που εφαρμόζονται στα δεδομένα. Στοχεύει στην τακτοποίηση δεδομένων με συγκεκριμένο τρόπο, που μπορεί να αυξάνεται ή να μειώνεται σύμφωνα με τις απαιτήσεις. Υπάρχει μια ενσωματωμένη συνάρτηση στο C ++ STL με το όνομα «sort ()» που μας επιτρέπει να εκτελούμε εύκολα τον αλγόριθμο ταξινόμησης. Σε αυτό το άρθρο θα διερευνήσουμε τη λειτουργία ταξινόμησης στο C ++,

Οι ακόλουθοι δείκτες θα καλυφθούν σε αυτό το άρθρο:





πώς να χρησιμοποιήσετε τη μέθοδο trim στο java

Προχωρώντας με αυτό το άρθρο σχετικά με τη λειτουργία Ταξινόμηση στο C ++

Είδος ( ) λειτουργία

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



Τα βήματα είναι τα εξής:
1. Επιλέξτε ένα τυχαίο στοιχείο (συνήθως το τελευταίο στοιχείο), που ονομάζεται άξονας, από τη λίστα.
2. Αναδιάταξη της λίστας με τέτοιο τρόπο ώστε όλα τα στοιχεία με τιμές μικρότερες από τον άξονα να έρχονται πριν από τον άξονα, ενώ όλα τα στοιχεία με τιμές μεγαλύτερες από τον άξονα έρχονται μετά από αυτό και οι ίδιες τιμές μπορούν να πάνε με οποιονδήποτε τρόπο. Αυτή η διαδικασία ονομάζεται λειτουργία διαμέρισης.
3. Ταξινομήστε αναδρομικά την υπο-λίστα των μικρότερων στοιχείων και την υπο-λίστα των μεγαλύτερων στοιχείων, επιλέξτε ξανά έναν άξονα στην υπο-λίστα και διαιρέστε τους.
Η βασική περίπτωση της επανάληψης είναι λίστες με μέγεθος μηδέν ή μία, οι οποίες δεν χρειάζεται ποτέ να ταξινομηθούν και έτσι συνδυάζοντάς τις ταξινομούμε τη λίστα μας.

Το Quicksort είναι ταχύτερο στην πράξη από άλλους αλγόριθμους O (n log n) όπως το Insertion Sort ή το Bubble. Το Quicksort μπορεί να εφαρμοστεί με έναν επιτόπιο αλγόριθμο κατάτμησης που σημαίνει ότι ολόκληρο το είδος μπορεί να γίνει μόνο με επιπλέον χώρο O (log n). Το Quicksort δεν είναι ένα σταθερό είδος.
Η πολυπλοκότητά του έχει ως εξής:
Καλύτερη περίπτωση - O (n log n)
Χειρότερη περίπτωση - O (n ^ 2)
Μέση περίπτωση - O (n log n)

Σύνταξη:
ταξινόμηση (πρώτο, τελευταίο)
Εδώ,
πρώτα - είναι ο δείκτης (δείκτης) του πρώτου στοιχείου στο εύρος που θα ταξινομηθεί.
τελευταία - είναι ο δείκτης (δείκτης) του τελευταίου στοιχείου στο εύρος προς ταξινόμηση.
Για παράδειγμα, θέλουμε να ταξινομήσουμε στοιχεία ενός πίνακα «arr» από τη θέση 1 έως 10, θα χρησιμοποιήσουμε το είδος (arr, arr + 10) και θα ταξινομήσει 10 στοιχεία σε αύξουσα σειρά.
Τιμή επιστροφής
Κανένας



Περίπλοκο

Ο μέσος όρος μιας πολυπλοκότητας ταξινόμησης είναι N * log2 (N), όπου N = τελευταίο - πρώτο.

Φασμα ΔΕΔΟΜΕΝΩΝ
Το αντικείμενο στην περιοχή [πρώτο, τελευταίο] τροποποιείται.

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

Προχωρώντας με αυτό το άρθρο σχετικά με τη λειτουργία Ταξινόμηση στο C ++

Παράδειγμα - Για να ταξινομήσετε δεδομένα σε αύξουσα σειρά:

#include χρησιμοποιώντας χώρο ονομάτων std int main () {int array [] = {10, 35, 85, 93, 62, 77, 345, 43, 2, 10} int n = sizeof (array) / sizeof (πίνακας [0] ) // 'sizeof' δίνει το μέγεθος του συνολικού πίνακα δηλαδή μέγεθος κάθε χαρακτήρα * όχι. χαρακτήρων // για να λάβετε όχι. χαρακτήρων // διαιρούμε το μέγεθοςof (array) με το μέγεθος οποιουδήποτε χαρακτήρα του πίνακα // εδώ είναι array [0] sort (array, array + n) cout<< 'nArray after sorting using ' 'default sort is : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Έξοδος:

Έξοδος - Λειτουργία ταξινόμησης σε C ++ - Edureka

Εξήγηση

Από το παραπάνω παράδειγμα, βλέπουμε ότι η συνάρτηση sort () από προεπιλογή ταξινομεί έναν πίνακα σε αύξουσα σειρά.

Προχωρώντας με αυτό το άρθρο σχετικά με τη λειτουργία Ταξινόμηση στο C ++

Παράδειγμα - Για να ταξινομήσετε δεδομένα σε φθίνουσα σειρά:

Για να ταξινομήσουμε τα δεδομένα του πίνακα σε φθίνουσα σειρά, πρέπει να εισαγάγουμε μια τρίτη παράμετρο που χρησιμοποιείται για τον καθορισμό της σειράς με την οποία θα ταξινομηθούν τα στοιχεία. Μπορούμε να χρησιμοποιήσουμε τη λειτουργία «μεγαλύτερη ()» για να ταξινομήσουμε τα δεδομένα σε φθίνουσα σειρά.

τι είναι ένα διάλειμμα γραμμής στο html
#include χρησιμοποιώντας χώρο ονομάτων std int main () {int array [] = {41, 53, 4, 459, 60, 7, 23, 4, 232, 10} int n = sizeof (array) / sizeof (πίνακας [0] ) ταξινόμηση (πίνακας, πίνακας + n, μεγαλύτερο ()) cout<< 'Array after sorting : n' for (int i = 0 i < n ++i) cout << array[i] << ' ' return 0 } 

Παραγωγή:

Λήξη μεγάλο έθνος
Εδώ η λειτουργία sort () κάνει μια σύγκριση με τρόπο που βάζει μεγαλύτερο στοιχείο πριν.

Προχωρώντας με αυτό το άρθρο σχετικά με τη λειτουργία Ταξινόμηση στο C ++

Μερική_ ταξινόμηση

Το C ++ STL μας παρέχει μια λειτουργία μερικής ταξινόμησης, η συνάρτηση είναι παρόμοια με τη λειτουργία ταξινόμησης () αλλά σε αντίθεση με τη συνάρτηση ταξινόμησης () δεν χρησιμοποιείται για την ταξινόμηση ολόκληρης της περιοχής αλλά χρησιμοποιείται για την ταξινόμηση μόνο ενός υπο-τμήματος αυτής. Ταιριάζει τα στοιχεία στην περιοχή [πρώτο, τελευταίο], με τέτοιο τρόπο ώστε τα στοιχεία πριν από το μεσαίο στοιχείο να ταξινομηθούν σε αύξουσα σειρά, ενώ τα στοιχεία μετά τη μέση παραμένουν ως έχουν.

Μπορεί να χρησιμοποιηθεί για να βρει το μεγαλύτερο στοιχείο εάν χρησιμοποιήσουμε ένα αντικείμενο συνάρτησης για να ταξινομήσουμε την πρώτη θέση

Παράδειγμα

#include #include #include χρησιμοποιώντας namespace std int main () {vector vec = {10, 45, 60, 78, 23, 21, 30} vector :: iterator iptr partial_sort (vec.begin (), vec.begin () + 1, vec.end (), μεγαλύτερο ()) iptr = vec.begin () cout<< 'The largest element is = ' << *iptr return 0 } 

Παραγωγή:

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

Έτσι, έχουμε φτάσει στο τέλος αυτού του άρθρου σχετικά με τη «Ταξινόμηση συνάρτησης σε C ++». Αν θέλετε να μάθετε περισσότερα, δείτε το Java Training από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία μάθησης. Το Edureka's Τα μαθήματα έχουν σχεδιαστεί για να σας εκπαιδεύσουν τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.