C ++ qsort () - C ++ Pustaka Standar

Fungsi qsort () di C ++ mengurutkan larik tertentu dalam urutan menaik menggunakan algoritme Quicksort.

Fungsi qsort () menggunakan fungsi perbandingan untuk memutuskan elemen mana yang lebih kecil / lebih besar dari yang lain.

qsort () prototipe

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

Fungsi tersebut didefinisikan dalam file header.

Fungsi qsort () mengurutkan larik yang ditentukan berdasarkan basis dalam urutan menaik. Array berisi numelemen, masing-masing berukuran byte.

Fungsi yang ditunjukkan oleh perbandingan digunakan untuk membandingkan dua elemen dari array. Fungsi ini mengubah konten dari array itu sendiri dalam urutan menaik.

Namun, jika dua atau lebih elemen sama, urutannya tidak ditentukan.

qsort () Parameter

  • base: Arahkan ke elemen pertama dari array yang akan diurutkan
  • num: Jumlah elemen dalam array
  • size: Ukuran dalam byte dari setiap elemen dalam array
  • bandingkan: Penunjuk ke fungsi yang membandingkan dua elemen. Ia kembali
    • bilangan bulat negatif jika argumen pertama kurang dari yang kedua
    • bilangan bulat positif jika argumen pertama lebih besar dari yang kedua
    • nol jika kedua argumen sama

Prototipe dari fungsi perbandingan terlihat seperti:

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

qsort () Nilai kembali

Fungsi qsort () tidak mengembalikan apa pun. Array yang diurutkan ditunjuk oleh basis.

Contoh: Bagaimana fungsi qsort () bekerja?

 #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

Artikel yang menarik...