Hàm qsort() trong C

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ả:

Biên dịch và chạy chương trình C để xem kết quả

Theo Tutorialspoint

Bài trước: Hàm bsearch() trong C

Bài tiếp: Hàm abs() trong C

Thứ Bảy, 08/09/2018 08:59
51 👨 220