Hàm qsort thực hiện thuật giải QuickSort cho C
Mô tả hàm thư viện trong C dùng sắp xếp một mảng được khai báo như sau:
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))
Đối số
base – Con trỏ trỏ đến đầu mảng cần sắp xếp.
nitems – Số phần tử cần được sắp
size – Kích cỡ từng phần tử trên mảng.
compar – Hàm so sánh giữa 2 phần tử
Hàm không có giá trị trả về
Ví dụ
#include <stdio.h>
#include <stdlib.h>
int values[] = {4,7,2,8,1,6,3};
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main()
{
int n;
printf("Day so truoc khi sap xep : \n");
for( n = 0 ; n < 7; n++ ) {
printf("%d ", values[n]);
}
qsort(values, 7, sizeof(int), cmpfunc);
printf("\nDay so sau khi sap xep: \n");
for( n = 0 ; n < 7; n++ ) {
printf("%d ", values[n]);
}
return(0);
}