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

Theo Tutorialspoint
Bài trước: Hàm bsearch() trong C
Bài tiếp: Hàm abs() trong C
Bạn nên đọc
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
-
minh nguyễnThích · Phản hồi · 0 · 06/08/23
-
Ngôn ngữ lập trình C là gì?
-
Hướng dẫn cài đặt C
-
Cấu trúc chương trình C cơ bản
-
Cú pháp cơ bản
-
Kiểu dữ liệu
-
Biến trong C
-
Hằng số
-
Lớp lưu trữ
-
Các toán tử
-
Điều khiển luồng
-
Vòng lặp
-
Các hàm trong C
-
abort()
-
abs()
-
atexit()
-
atof()
-
atoi()
-
atol()
-
bsearch()
-
calloc()
-
clearerr()
-
ldiv()
-
exit()
-
fclose()
-
feof()
-
ferror()
-
fflush()
-
fgetc()
-
fgetpos()
-
fgets()
-
fopen()
-
fprintf()
-
fputc()
-
fputs()
-
fread()
-
free()
-
freopen()
-
fscanf()
-
fseek()
-
fsetpos()
-
ftell()
-
fwrite()
-
getc()
-
getchar()
-
getenv()
-
gets()
-
labs()
-
labs()
-
malloc()
-
mblen()
-
mbstowcs()
-
mbtowc()
-
memchr()
-
memcmp()
-
memcpy()
-
memset()
-
perror()
-
printf()
-
putc()
-
putchar()
-
puts()
-
qsort()
-
raise()
-
rand()
-
realloc()
-
remove()
-
rename()
-
rewind()
-
scanf()
-
setbuf()
-
setvbuf()
-
signal()
-
sprintf()
-
srand()
-
sscanf()
-
strchr()
-
strcmp()
-
strcoll()
-
strcpy()
-
strcspn()
-
strerror()
-
strlen()
-
strncat()
-
strncmp()
-
strncat()
-
strncpy()
-
strpbrk()
-
strrchr()
-
strspn()
-
strstr()
-
strtod()
-
strtok()
-
strtol()
-
strtod()
-
strtoul()
-
strxfrm()
-
system()
-
tmpfile()
-
tmpnam()
-
ungetc()
-
vfprintf()
-
vsprintf()
-
wcstombs()
-
wctomb()
-
-
Quy tắc phạm vi
-
Mảng
-
Con trỏ
-
Chuỗi
-
Cấu trúc (Structure)
-
Union trong C
-
Bit Field
-
Typedef
-
Input & Output
-
Đọc và ghi file
-
Bộ tiền xử lý
-
Header File
-
Ép kiểu
-
Xử lý lỗi
-
Đệ quy
-
Tham số biến
-
Quản lý bộ nhớ
-
Tham số dòng lệnh
-
Thư viện C
-
Switch
-
Enumeration (enum)
Hướng dẫn AI
Học IT
Hàm Excel