C ++ qsort () - Βασική βιβλιοθήκη C ++

Η συνάρτηση qsort () στο C ++ ταξινομεί έναν δεδομένο πίνακα σε αύξουσα σειρά χρησιμοποιώντας τον αλγόριθμο Quicksort.

Η συνάρτηση qsort () χρησιμοποιεί μια συνάρτηση σύγκρισης για να αποφασίσει ποιο στοιχείο είναι μικρότερο / μεγαλύτερο από το άλλο.

πρωτότυπο qsort ()

 void qsort (void * base, size_t num, size_t size, int (* membandingkan) (const void *, const void *));

Η συνάρτηση ορίζεται στο αρχείο κεφαλίδας.

Η συνάρτηση qsort () ταξινομεί τον δεδομένο πίνακα που δείχνει με βάση τη βάση σε αύξουσα σειρά. Ο πίνακας περιέχει numστοιχεία, καθένα από τα byte μεγέθους.

Η συνάρτηση που δείχνει η σύγκριση χρησιμοποιείται για τη σύγκριση δύο στοιχείων του πίνακα. Αυτή η συνάρτηση τροποποιεί το περιεχόμενο του ίδιου του πίνακα με αύξουσα σειρά.

Ωστόσο, εάν δύο ή περισσότερα στοιχεία είναι ίδια, η σειρά τους είναι απροσδιόριστη.

παράμετροι qsort ()

  • βάση: Δείκτης στο πρώτο στοιχείο του πίνακα για ταξινόμηση
  • αριθμός: Αριθμός στοιχείου στον πίνακα
  • size: Μέγεθος σε byte κάθε στοιχείου στον πίνακα
  • σύγκριση: Ένας δείκτης σε μια συνάρτηση που συγκρίνει δύο στοιχεία. Επιστρέφει
    • αρνητικό ακέραιο εάν το πρώτο όρισμα είναι μικρότερο από το δεύτερο
    • ένα θετικό ακέραιο εάν το πρώτο όρισμα είναι μεγαλύτερο από το δεύτερο
    • μηδέν εάν και τα δύο επιχειρήματα είναι ίδια

Το πρωτότυπο της λειτουργίας σύγκρισης μοιάζει με:

 int membandingkan (const void * a, const void * b);

qsort () Τιμή επιστροφής

Η συνάρτηση qsort () δεν επιστρέφει τίποτα. Ο ταξινομημένος πίνακας δείχνει προς βάση.

Παράδειγμα: Πώς λειτουργεί η λειτουργία qsort ();

 #include #include using namespace std; int compare(const void* a, const void* b) ( const int* x = (int*) a; const int* y = (int*) b; if (*x> *y) return 1; else if (*x < *y) return -1; return 0; ) int main() ( const int num = 10; int arr(num) = (9,4,19,2,7,9,5,15,23,3); cout << "Before sorting" << endl; for (int i=0; i 

When you run the program, the output will be:

 Before sorting 9 4 19 2 7 9 5 15 23 3 After sorting 2 3 4 5 7 9 9 15 19 23

ενδιαφέροντα άρθρα...