C ++ qsort () - C ++ - vakiokirjasto

C ++: n qsort () -toiminto lajittelee tietyn matriisin nousevassa järjestyksessä Quicksort-algoritmilla.

Qsort () -funktio käyttää vertailutoimintoa päättääkseen, mikä elementti on pienempi / suurempi kuin toinen.

qsort () -prototyyppi

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

Toiminto määritetään otsikkotiedostossa.

Qsort () -toiminto lajittelee tietyn matriisin, jonka perusta osoittaa, nousevassa järjestyksessä. Taulukko sisältää numelementtejä, joista jokaisen koko on tavua.

Vertaa -toiminnolla vertaillaan taulukon kahta elementtiä. Tämä toiminto muuttaa itse taulukon sisältöä nousevassa järjestyksessä.

Jos kuitenkin vähintään kaksi elementtiä on yhtä suuri, niiden järjestystä ei ole määritelty.

qsort () -parametrit

  • pohja: Osoitin lajittelun ensimmäisen elementin kohdalle
  • num: matriisin elementin numero
  • size: Matriisin kunkin elementin koko tavuina
  • vertaa: Osoitin funktioon, joka vertaa kahta elementtiä. Se palaa
    • negatiivinen kokonaisluku, jos ensimmäinen argumentti on pienempi kuin toinen
    • positiivinen kokonaisluku, jos ensimmäinen argumentti on suurempi kuin toinen
    • nolla, jos molemmat argumentit ovat samat

Vertailutoiminnon prototyyppi näyttää tältä:

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

qsort () Palautusarvo

Qsort () -toiminto ei palauta mitään. Lajiteltu taulukko on osoitettu perustan perusteella.

Esimerkki: Kuinka qsort () -toiminto toimii?

 #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

Mielenkiintoisia artikkeleita...