BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > C Programlama > C standart kütüphanesi > <stdlib.h> > qsort

qsort() fonksiyonu

Bildirim

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

Açıklama

İlk eleman adresi base parametresi ile gösterilen, boyutu num parametre değeri kadar ve her bir eleman boyutu size parametre değeri kadar olan bir dizinin elemanlarını, sıralamayı şeklini compar fonksiyonu ile belirleyerek, sıraya dizer.

Parametreler

base: Sıralanacak dizinin ilk elemanının adresini gösterir.

num: Base parametresi ile gösterilen dizinin eleman sayısını gösterir.

size: Base parametresi ile gösterilen dizinin her bir elemanının boyutunu gösterir.

compar: Dizinin iki elemanını karşılaştıran fonksiyonun işaretçisidir.

Bu fonksiyon iki parametreyi karşılaştırır.

Fonksiyon aşağıdaki değerlerden birini geri döndürür.

Döndürülen değer Anlamı
<0 İlk parametre değeri ikinci parametre değerinden önce gelir.
0 İlk parametre değeri ikinci parametre değeri ile aynıdır.
>0 İlk parametre değeri ikinci parametre değerinden sonra gelir.

Dönüş değeri

Yok.

Örnek


#include <stdio.h>
#include <stdlib.h>

int compfunc(const void *a, const void *b) {
    return (*(int*)a - *(int*)b);
}

int main (void) {
    int idizi[] = { 14, 35, 4, 17, 5, 9, 43, 11, 21, 16 };
    int id;
    int num = sizeof(idizi) / sizeof(idizi[0]);

    for (id=0; id<num; id++) {
         printf("%d ", idizi[id]);
    }

    qsort (idizi, num, sizeof (int), compfunc);

    printf("\n");

    for (id=0; id<num; id++) {
         printf("%d ", idizi[id]);
    }

    return 0;
}



Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:

14 35 4 17 5 9 43 11 21 16 
4 5 9 11 14 16 17 21 35 43

Yukarıdaki program, 10 boyutlu int bir dizi içinde bulunan değişken değerlerini önce doğrudan sonra da qsort() fonksiyonu ile sıralayarak ekrana yazar.