Πώς να χρησιμοποιήσετε τη συνάρτηση stable_sort() στην C++

Pos Na Chresimopoiesete Te Synartese Stable Sort Sten C



Υπάρχουν διάφορες συναρτήσεις στη C++ για να ταξινομήσετε τα στοιχεία της ακολουθίας με συγκεκριμένη σειρά. Παρόμοια με τη συνάρτηση ταξινόμησης, η stable_sort χρησιμοποιείται για την ταξινόμηση των στοιχείων στην περιοχή (πρώτο, τελευταίο). Η βασική διαφορά μεταξύ τους είναι ότι το stable_sort διατηρεί τη σχετική τάξη των στοιχείων με ίσες τιμές.

Σε αυτό το σεμινάριο λεπτομερειών, θα δείξουμε τη λειτουργία του stable_sort() σε C++.

Πώς να χρησιμοποιήσετε τη συνάρτηση stable_sort() στην C++

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







Η γενική σύνταξη για τη χρήση του stable_sort() στην C++ είναι:



stable_sort ( RandomAccessIterator πρώτα , Τελευταίο RandomAccessIterator ) ;

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



ο stable_sort() Η συνάρτηση χρησιμοποιεί μη φθίνουσα σειρά για να ταξινομήσει τις εγγραφές στο εύρος [πρώτο, τελευταίο], δηλαδή από το μικρότερο στο μεγαλύτερο στοιχείο. Η συνάρτηση από προεπιλογή συγκρίνει τα στοιχεία μέσω του λιγότερο από τελεστή (<).





Παράδειγμα 1

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

#include

#include <διάνυσμα>

#include <αλγόριθμος>

χρησιμοποιώντας το namespace std ;



ενθ κύριος ( )

{

διάνυσμα < ενθ > λίστα = { 5 , 2 , 25 , 4 , 9 , 33 , 38 , 26 } ;

cout << 'Αριθμοί πριν από την ταξινόμηση: ' ;

για κάθε ( λίστα. αρχίζουν ( ) , λίστα. τέλος ( ) , [ ] ( ενθ Χ ) {

cout << Χ << '' ;

} ) ;

stable_sort ( λίστα. αρχίζουν ( ) , λίστα. τέλος ( ) ) ;

cout << ' \n Αριθμοί μετά την ταξινόμηση: ' ;

για κάθε ( λίστα. αρχίζουν ( ) , λίστα. τέλος ( ) , [ ] ( ενθ Χ ) {

cout << Χ << '' ;

} ) ;



ΕΠΙΣΤΡΟΦΗ 0 ;

}




Παράδειγμα 2

Στο παρακάτω παράδειγμα, δημιουργήσαμε έναν ακέραιο πίνακα και τον αρχικοποιήσαμε με κάποιες τιμές. Στη συνέχεια, από προεπιλογή, το stable_sort() ταξινομεί τα στοιχεία σε αύξουσα σειρά:

#include

#include <αλγόριθμος>

χρησιμοποιώντας το namespace std ;

ενθ κύριος ( )

{

ενθ πίνακας [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

ενθ n = μέγεθος του ( πίνακας ) / μέγεθος του ( πίνακας [ 0 ] ) ;

cout << 'Ο αρχικός πίνακας είναι: \n ' ;

Για ( ενθ Εγώ = 0 ; Εγώ < n ; ++ Εγώ ) {

cout << πίνακας [ Εγώ ] << '' ;

}

stable_sort ( πίνακας , πίνακας + n ) ;

cout << ' \n Ο πίνακας μετά την ταξινόμηση είναι: \n ' ;

Για ( ενθ Εγώ = 0 ; Εγώ < n ; ++ Εγώ ) {

cout << πίνακας [ Εγώ ] << '' ;

}

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Παράδειγμα 3

ο stable_sort παίρνει την τρίτη παράμετρο για να καθορίσει τη σειρά ταξινόμησης του στοιχείου. Στο παρακάτω παράδειγμα, χρησιμοποιήσαμε το μεγαλύτερη () λειτουργία με stable_sort() για να ταξινομήσετε τα στοιχεία του πίνακα με φθίνουσα σειρά

#include

#include <αλγόριθμος>

χρησιμοποιώντας το namespace std ;

ενθ κύριος ( )

{

ενθ πίνακας [ ] = { 12 , 7 , 7 , 1 , 8 , 7 , 3 , 4 , 22 , 0 } ;

ενθ n = μέγεθος του ( πίνακας ) / μέγεθος του ( πίνακας [ 0 ] ) ;

cout << 'Πρωτότυπος πίνακας: \n ' ;

Για ( ενθ Εγώ = 0 ; Εγώ < n ; ++ Εγώ ) {

cout << πίνακας [ Εγώ ] << '' ;

}

stable_sort ( πίνακας , πίνακας + n , μεγαλύτερη < ενθ > ( ) ) ;

cout << ' \n Πίνακας μετά την ταξινόμηση: \n ' ;

Για ( ενθ Εγώ = 0 ; Εγώ < n ; ++ Εγώ ) {

cout << πίνακας [ Εγώ ] << '' ;

}

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Συμπέρασμα

ο stable_sort() Η συνάρτηση στη C++ είναι ένας τυπικός αλγόριθμος βιβλιοθήκης που χρησιμοποιείται για την ταξινόμηση στοιχείων σε ένα κοντέινερ με μη φθίνουσα σειρά διατηρώντας τη σχετική σειρά στοιχείων σε ένα κοντέινερ με τις ίδιες τιμές. Μπορεί να χρησιμοποιηθεί με διαφορετικά κοντέινερ όπως πίνακες, διανύσματα και συνδεδεμένες λίστες. Επιπλέον, χρειάζεται μια τρίτη παράμετρος για να καθοριστεί η σειρά ταξινόμησης στοιχείων.