xachetbay

Tìm Kiếm Nhị Phân

May 21st, 2019
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.97 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<conio.h>
  3. void sapxep(int arr[], int n){
  4. int a,b,temp;
  5.     for(a = 0; a <n-1;a++){
  6.         for(b = a+1; b<n; b++){
  7.             if(arr[a] > arr[b]){
  8.                 temp = arr[a];
  9.                 arr[a] = arr[b];
  10.                 arr[b] = temp;
  11.             }
  12.         }
  13.     }
  14.         for(b=0;b<n;b++){
  15.         printf("%d\t",arr[b]);
  16.     }
  17. }
  18. int binarySearch(int arr[], int n, int x){
  19.     int mid, left = 0, right = n-1, key=-1;
  20.     while(left <= right){
  21.         mid = (left+right) / 2;
  22.         if(x < arr[mid])
  23.             right = mid - 1;
  24.         else if(x > arr[mid])
  25.             left = mid + 1;
  26.         else{
  27.             key = mid;
  28.             break;
  29.         }
  30.     }
  31.     return key;
  32. }
  33. int main(){
  34.     int n,i, x, k;
  35.     printf("Nhap vao so phan tu: ");scanf("%d",&n);
  36.     int arr[n];
  37.     for(i = 0; i < n; i++){
  38.         printf("a[%d]=",i+1);
  39.         scanf("%d", &arr[i]);
  40.     }
  41.     sapxep(arr, n);
  42.     printf("\nNhap vao gia tri can tim: ");scanf("%d", &x);
  43.     k = binarySearch(arr,n,x);
  44.     if (k >= 0)
  45.         printf("\nGia tri %d tim thay tai vi tri thu %d",x,k+1);
  46.     else printf("\nKhong tim thay %d trong day!",x);
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment