Hàm qsort() trong C
Hàm void qsort(void *base, so-phan-tu, kich-co, int (*compar)(const void *, const void*)) sắp xếp một mảng.
Hàm qsort() là viết tắt của Quick Sort, được viết dựa trên giải thuật Sắp xếp nhanh (Quick Sort).
Khai báo hàm qsort() trong C
Dưới đây là phần khai báo cho qsort() trong C:
void qsort(void *base, so-phan-tu, kich-co, int (*compar)(const void *, const void*))
Tham số
base: Đây là con trỏ tới phần tử đầu tiên của mảng cần được sắp xếp.
so-phan-tu: Đây là số phần tử trong mảng được trỏ bởi con trỏ base.
kich-co: Đây là kích cỡ (bằng byte) của mỗi phần tử trong mảng.
compar: Hàm so sánh hai phần tử.
Trả về giá trị
Hàm này không trả về bất cứ giá trị nào.
Ví dụ
Chương trình C sau minh họa cách sử dụng của qsort() trong C:
#include <stdio.h> #include <stdlib.h> int values[] = { 88, 56, 100, 2, 25 }; int cmpfunc (const void * a, const void * b) { return ( *(int*)a - *(int*)b ); } int main() { int n; printf("Truoc khi sap xep, list co dang: \n"); for( n = 0 ; n < 5; n++ ) { printf("%d ", values[n]); } qsort(values, 5, sizeof(int), cmpfunc); printf("\nSau khi sap xep, list co dang: \n"); for( n = 0 ; n < 5; n++ ) { printf("%d ", values[n]); } return(0); }
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
19 Th3 2021
19 Th3 2021
19 Th3 2021
19 Th3 2021
19 Th3 2021
19 Th3 2021