Hàm bsearch() trong C
Hàm bsearch() trong C
Hàm void *bsearch(const void *key, const void *base, nitems, size, int (*compar)(const void *, const void *)) tìm kiếm một mảng các đối tượng nitems, thành viên ban đầu của nó được trỏ tới bởi base, cho một thành viên mà kết nối đối tượng được trỏ tới bởi key. Kích cỡ của mỗi phần tử mảng được xác định bởi size.
Các nội dung của mảng nên là theo thứ tự tăng dần tương ứng với hàm so sánh được tham chiếu bởi compar.
Hàm bsearch(), là viết tắt của Binary Search, được viết dựa trên tư tưởng của giải thuật Tìm kiếm nhị phân (Binary Search), bạn có thể tham khảo giải thuật này tại Giải thuật tìm kiếm nhị phân.
Khai báo hàm bsearch() trong C
Dưới đây là phần khai báo cho bsearch() trong C:
void *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))
Tham số
key: Đây là con trỏ tới đối tượng mà đóng vai trò như là key để tìm kiếm, được ép kiểu dưới dạng một void*.
base: Đây là con trỏ tới đối tượng đầu tiên của mảng, nơi cuộc tìm kiếm được thực hiện, được ép kiểu dưới dạng một void*.
nitems: Đây là số phần tử trong mảng được trỏ tới bởi base.
size: Đây là kích cỡ (giá trị byte) của mỗi phần tử trong mảng.
compare: Đây là hàm để so sánh hai phần tử.
Trả về giá trị
Hàm này trả về một con trỏ tới một entry trong mảng mà kết nối với key tìm kiếm. Nếu key không được tìm thấy, hàm trả về một con trỏ NULL.
Ví dụ
Chương trình C sau minh họa cách sử dụng của bsearch() trong C:
#include <stdio.h> #include <stdlib.h> int cmpfunc(const void * a, const void * b) { return ( *(int*)a - *(int*)b ); } int values[] = { 5, 20, 29, 32, 63 }; int main () { int *item; int key = 32; /* su dung ham bsearch() de tim gia tri 32 trong mang */ item = (int*) bsearch (&key, values, 5, sizeof (int), cmpfunc); if( item != NULL ) { printf("Da tim thay phan tu co gia tri = %d\n", *item); } else { printf("Khong tim thay phan tu co gia tri = %d\n", *item); } 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 system() trong C
Bài tiếp: Hàm qsort() 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:
Cũ vẫn chất
-

Những stt hay nói về miệng lưỡi thế gian đáng để suy ngẫm
Hôm qua -

Cách cho người lạ xem Nhật ký Zalo
Hôm qua -

Stt về tiền hài hước, những câu nói hài hước về tiền nhưng thâm thúy, ‘thô mà thật’
Hôm qua -

Công thức tính chu vi hình tứ giác, diện tích hình tứ giác
Hôm qua 1 -

30+ bài thơ về rượu bia hay, thơ chế về rượu bia hài hước và bá đạo cho dân nhậu
Hôm qua -

Cài đặt Python Package với PIP trên Windows, Mac và Linux
Hôm qua -

Tổng hợp thao tác Touchpad trên Windows 10, Windows 11
Hôm qua -

Những trang web đen siêu hay không thể tìm thấy trên Google
Hôm qua 3 -

Sửa lỗi 0x80070643 trên Windows
Hôm qua -

Cách chia sẻ một thư mục (folder) trên Windows 10
Hôm qua
Học IT
Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy