C ++ qsort () - C ++ Standart Kitaplığı

C ++ 'daki qsort () işlevi, Quicksort algoritmasını kullanarak belirli bir diziyi artan sırada sıralar.

Qsort () işlevi, hangi öğenin diğerinden daha küçük / büyük olduğuna karar vermek için bir karşılaştırma işlevi kullanır.

qsort () prototipi

 void qsort (void * base, size_t num, size_t size, int (* karşılaştırma) (const void *, const void *));

İşlev, başlık dosyasında tanımlanır.

Qsort () işlevi, tabana göre gösterilen belirli diziyi artan sırada sıralar. Dizi num, her biri boyut baytlık öğeler içerir .

Karşılaştırma ile gösterilen fonksiyon, dizinin iki elemanını karşılaştırmak için kullanılır. Bu işlev, dizinin içeriğini artan sırada değiştirir.

Bununla birlikte, iki veya daha fazla öğe eşitse, sıraları tanımsızdır.

qsort () Parametreler

  • taban: Sıralanacak dizinin ilk öğesine işaretçi
  • num: Dizideki öğe sayısı
  • size: Dizideki her bir öğenin bayt cinsinden boyutu
  • karşılaştırma: İki öğeyi karşılaştıran bir işleve işaretçi. Döner
    • ilk bağımsız değişken ikinciden küçükse negatif bir tam sayı
    • ilk bağımsız değişken ikinciden büyükse pozitif bir tam sayı
    • her iki bağımsız değişken de eşitse sıfır

Karşılaştırma işlevinin prototipi şöyle görünür:

 int karşılaştırma (const void * a, const void * b);

qsort () Dönüş değeri

Qsort () işlevi hiçbir şey döndürmez. Sıralanan dizi, tabana göre gösterilir.

Örnek: qsort () işlevi nasıl çalışır?

 #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

Ilginç makaleler...