T[1 ... n ] có n phần tử đã sắp xếp theo thứ tự tăng dần và một giá trị x là số cần kiểm tra xem có tồn tại trong mảng hay không.Đầu ra: trả về kết quả thông báo cho người dùng biết có hoặc không có.
| Hình 10.1: Kết quả chương trình tìm kiếm nhị phân - C |
#include <stdio.h>
#include <conio.h>
/**
** Search x in array a[] have n element
**/
int binary_search(int* a, int n, int x);
/**
** Main function
**/
int main(){
int a[10] = {1,2,3,4,5,6,7,8,9,10};
int x = -1;
int i = 0;
printf("Array: {");
for(i = 0; i < 10; i++){
if( i!=9 ){
printf("%d , ", a[i]);
} else {
printf("%d ", a[i]);
}
}
printf("}\n");
while(x){
printf("enter the number search: ");
scanf("%d", &x);
if(binary_search(a, 10, x)){
printf("%d Search return True!\n", x);
} else {
printf("%d Search return False!\n", x);
}
}
printf("\n Enter any charecter end program ....");
getch();
return 0;
}
int binary_search(int* a, int n, int x){
int i;
while(n > 0){
i = n/2;
if( a[i] == x ){
return 1;
} else if(a[i] < x) {
a = &(a[i+1]);
n = n - i - 1;
} else {
n = i;
}
}
return 0;
}
No comments:
Post a Comment